1、什么是回流?html
回流是会致使页面从新渲染的一些元素,从而影响性能。dom
2、哪些因素会致使回流?布局
一、调整窗口的大小;性能
二、改变字体,若是用rem 设置了根目录的字体大小,这样就减小了回流的次数;字体
三、增长或者移除样式表;动画
四、内容的变化,用户在input中输入了文字(这是不可避免的);htm
五、激活CSS的伪类;rem
六、操做class属性;input
七、基本操做DOM(包括js中的domcument等);it
八、计算offsetWidth与offsetHeight 属性,获取元素在窗口中的位置;
九、在html代码中直接设置style 属性的值,这个下降了代码的利用率,还影响性能。
3、如何避免回流?
一、若是想设定元素的样式,直接改变class名,而不是改变class中的某个特定的属性,好比height,weight;
二、避免设置多项内联样式,就是说少使用style;
三、应用元素动画的时候,使用属性的position属性的fixed值或absolute值;
四、避免使用table布局;
五、尽可能在DOM树的最末端改变class,改变子节点的样式。