你平时有哪些 CSS 性能优化的方法?
常见的 CSS 性能优化手段主要有以下几类:
1. 加载与解析层面
- 内联首屏关键 CSS(Critical CSS),减少首屏渲染阻塞。
- 异步加载非关键 CSS:如
<link rel="preload" as="style">+onload,或动态创建<style>。 - 压缩 CSS、合并文件,减少请求体积与数量。
- 通过 PurgeCSS / UnCSS 等工具去除无用 CSS。
2. 选择器与规则层面
- 避免过深的嵌套和复杂选择器(尤其避免
*通配符选择器),选择器匹配是从右向左进行的。 - 减少使用属性选择器(如
[attr]),尤其是在大列表上。 - 减少使用昂贵的属性,如
box-shadow、filter、border-radius等大面积使用时。
3. 渲染与重排重绘
- 减少引起回流/重绘的属性频繁修改,批量修改或放在
requestAnimationFrame中。 - 复杂动画使用
transform/opacity,开启 GPU 合成层。 - 避免使用
@import,它会阻塞并行加载,且顺序在所有link之后。
4. 其它
- 合理使用 CSS 继承,减少重复声明。
- 抽离公共样式(CSS 变量、原子化类等)以减小总体积。
- 图标合并为雪碧图或使用 SVG / iconfont,避免大量小图请求。
补充:实际项目中通常会组合使用,先压缩、再按需加载、最后做关键 CSS 内联 + 异步兜底。



