浏览器渲染机制、重排、重绘

网页生成过程

1 HTML被HTML解析器解析成DOM树

2 CSS被CSS解析器解析成CSSOM树

3 将DOM树和CSSOM树结合形成渲染树(render tree)

4 生成布局Flow,即把所有渲染树的节点进行平面整合

5 布局绘制Paint,呈现屏幕


重排(reflow)

重排也叫回流。 当DOM的变化影响了元素的几何信息(其实就是DOM的位置和尺寸大小),浏览器需要重新计算DOM元素的几何属性,并把起放在界面正确的位置。这个过程就叫重排。

触发:
1 添加删除DOM元素(可见元素)
2 元素改变尺寸——margin padding boder width height


重绘(repaint)

一个元素的外观发生变化,但布局方面没有改变,重新把它的外观绘制出来的过程。

触发:
改变元素的颜色color、背景background、box-shadow等属性


重排优化

1、分离读写操作
2、class样式集中修改
3、缓存需要修改的dom元素
4、尽量修改元素的position:absolute、fixed元素,对其他元素影响不大
5、不要通过父元素修改子元素尺寸大小,修改子元素同时不要影响父元素

注意transform不会触发重绘回流、transform属于合成属性,对合成属性精选transiton/animate动画时,将会创建一个合成层。使得动画元素在独立的层进行渲染,元素的内容没发生变化就没必要发生重绘。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值