浏览器解析的基本流程javascript
reflow,浏览器根据各类样式来计算并根据计算结果将元素放到肯定的地方。
repaint: relfow完成以后,浏览器把这些元素按照各自的特性绘制一遍。css
一个元素的外观改变,可是没有改变布局的状况java
visibilityweb
outlinechrome
background colorsegmentfault
改变窗口大小浏览器
改变字体chrome-devtools
增长和删除样式表工具
内容的改变,好比用户在输入框输入文字布局
激活伪类
操做class属性
脚本操做DOM
计算offsetWidth和offsetHeight
设置style属性
display:none 触发reflow,而visibility:hidden 触发repaint,由于没有发生位置变化
直接改变你想改变的元素(避免经过父元素做用于子元素,而是直接做用于子元素)
避免黄色至内联样式
对于动画的元素,其position设为fixed或absolute
权衡速度的平滑,速度慢,reflow比较频繁
避免table布局
避免css中含有js 表达式(只有IE)
使用chrome开发者工具timeline:
timeline
参考资料: