从以下几个方面考虑:
- css压缩
- css单一样式更好,例如margin-bottom:10px;margin-top:10px;
- 减少使用@import,建议使用link,link在页面加载时一起加载,@import等页面加载完成后再进行加载
- 减少使用标签选择器,而是用class
- 避免使用通配符选择器*{}
- 了解哪些属性是可以通过继承而来的,然后避免对这些属性重复使用
- 尽量减少页面的重排、重绘
- 公共样式抽离出来,整合并通过class在页面中使用
避免重绘回流
注意:触发回流定会触发重绘,重绘不一定引发回流
引起回流:
页面的首次渲染
浏览器窗口大小发生变化
元素内容发生变化
元素的尺寸或者位置发生变化
元素的字体大小发生变化
添加或者删除可见的DOM元素
激活css伪类
导致重绘:
color/background相关属性background-color,background-image等属性
outline相关属性outline-color,outline-width
border-radius/visibility/box-shadow
减少回流与重绘:
尽量不使用table布局
不要频繁操作元素的样式,可以采用修改类名
使用absolute或者fixed,使元素脱离文档流
将元素设置display:none,操作结束再把它显示出来。因为在display属性为none的元素上进行DOM操作不会引起回流和重绘