zoukankan      html  css  js  c++  java
  • 【组件开发笔记】样式の管理

    1、css存在的问题

    污染:因为css的选择器不具备隔离性,导致最后生成的样式都会污染全局命名空间。落在大型项目中,问题尤为明显。

    解决方向:生成唯一的类名; shadow dom; 内联样式; Vue-scoped 方案

    其他一些比如无法共享变量(例如主体色等全局样式)、解析方式的不确定性等问题

    解决方向:CSS-in-js;避免使用全局样式,组件样式隔离;样式加载和组件生命周期绑定

    2、组件的样式

    组件应该要暴露样式定制的接口,至少应该具备className与style的接口。

    尽量不使用内联样式,因为会导致组件重新渲染,而且使得代码累赘,不方便管理。

    3、全局通用样式

    应该配置全局通用的一些样式,比如颜色系统,排版系统,尺寸系统,配置开关(比如圆角&阴影),状态系统等等,类似一个UI组件库,都会具备自己的风格与样式规范,这些都属于全局通用的样式。

    可以使用babel-plugin-styled-componentsbabel macro来支持服务端渲染、 样式压缩和提升 debug 体验. 推荐使用 macro 形式, 无需安装和配置 babel 插件。

    tips:

    svg图标可以使用svgr转换为组件,便于管理,之前用过,且记过一篇随笔,不赘述。

    使用rem与em等相对长度单位。

    (em:当em为字体单位时继承父元素字体大小,当它为其他属性单位时,继承自身字体大小)

    (rem:rem作用于非根元素时,相对于根元素字体大小;作用于根元素字体大小时,相对于其初始字体大小;应对方法:多写一个绝对单位的声明就可覆盖,比如:p {font-size:14px; font-size:.875rem;}

    注意:任意浏览器的默认字体高都是16px。所有未经调整的浏览器都符合: 1em=16px。那么12px=0.75em,10px=0.625em。为了简化font-size的换算,需要在css中的body选择器中声明Font-size=62.5%,这就使em值变为 16px*62.5%=10px, 这样12px=1.2em, 10px=1em, 也就是说只需要将你的原来的px数值除以10,然后换上em作为单位。所以我们在写CSS的时候,需要注意:

    1. body选择器中声明Font-size=62.5%;

    2. 将你的原来的px数值除以10,然后换上em作为单位;

    3. 重新计算那些被放大的字体的em数值。避免字体大小的重复声明。

    使用stylint进行样式规范检查。

  • 相关阅读:
    内置函数二
    内置函数
    【MySQL】纲举目张:打通MySQL架构和业务的任督二脉
    关闭服务器节能模式
    透明大页
    【MySQL】MySQ 8.0启用HugePage
    运维安全之Tripwire
    七字诀,不再憋屈的运维
    利用钉钉机器人发送告警信息
    【MySQL】MySQL 8.0支持utf8mb4
  • 原文地址:https://www.cnblogs.com/nangras/p/14859968.html
Copyright © 2011-2022 走看看