Skip to content

[css] 第50天 列举CSS优化、提高性能的方法 #190

Open
@haizhilin2013

Description

@haizhilin2013
Collaborator

第50天 列举CSS优化、提高性能的方法

Activity

xiangshuo1992

xiangshuo1992 commented on Jun 5, 2019

@xiangshuo1992
Contributor

加载性能

  1. 压缩CSS
  2. 通过link方式加载,而不是@import
  3. 复合属性其实分开写,执行效率更高,因为CSS最终也还是要去解析如 margin-left: left;

选择器性能

  1. 尽量少的使用嵌套,可以采用BEM的方式来解决命名冲突
  2. 尽量少甚至是不使用标签选择器,这个性能实在是差,同样的还有*选择器
  3. 利用继承,减少代码量

渲染性能

  1. 慎重使用高性能属性:浮动、定位;
  2. 尽量减少页面重排、重绘;
  3. css雪碧图
  4. 自定义web字体,尽量少用
  5. 尽量减少使用昂贵属性,如box-shadow/border-radius/filter/透明度/:nth-child等
  6. 使用transform来变换而不是宽高等会造成重绘的属性

暂且先这样吧,看来想回答好,得好好梳理下了。

Vi-jay

Vi-jay commented on Jul 31, 2019

@Vi-jay

减少层级
不用标签 通配符这些范围较大的选择器
动画优化可以使用transform3d来使用GPU渲染提高性能

transform:translateZ(0)
chenyuwen456456

chenyuwen456456 commented on Jun 29, 2020

@chenyuwen456456

为什么 通过link方式加载,而不是@import?

smile-2008

smile-2008 commented on Nov 11, 2020

@smile-2008

加载性能

  1. 压缩CSS
  2. 通过link方式加载,而不是@import
  3. 复合属性其实分开写,执行效率更高,因为CSS最终也还是要去解析如 margin-left: left;

选择器性能

  1. 尽量少的使用嵌套,可以采用BEM的方式来解决命名冲突
  2. 尽量少甚至是不使用标签选择器,这个性能实在是差,同样的还有*选择器
  3. 利用继承,减少代码量

渲染性能

  1. 慎重使用高性能属性:浮动、定位;
  2. 尽量减少页面重排、重绘;
  3. css雪碧图
  4. 自定义web字体,尽量少用
  5. 尽量减少使用昂贵属性,如box-shadow/border-radius/filter/透明度/:nth-child等
  6. 使用transform来变换而不是宽高等会造成重绘的属性

暂且先这样吧,看来想回答好,得好好梳理下了。

yongleon

yongleon commented on Feb 9, 2021

@yongleon

为什么 通过link方式加载,而不是@import?
link是HTML提供的标签,加载页面时,link标签引入的 CSS 被 同时 加载;
@import是 CSS 提供的语法规则,只有 导入 样式表的作用;
@import引入的 CSS 将在页面加载完毕后被加载。网络不好的情况下,页面加载过慢,会出现闪烁,混乱的情况

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @smile-2008@haizhilin2013@xiangshuo1992@Vi-jay@chenyuwen456456

        Issue actions

          [css] 第50天 列举CSS优化、提高性能的方法 · Issue #190 · haizlin/fe-interview