ArthurWangCN / notepad

reading notepad
0 stars 2 forks source link

重绘和回流 #15

Open ArthurWangCN opened 1 year ago

ArthurWangCN commented 1 year ago

单单改变元素的外观,肯定不会引起网页重新生成布局,但当浏览器完成重排之后,将会重新绘制受到此次重排影响的部分。

即,回流必定引发重绘,重绘不一定引发回流。回流的代价比重绘高。

ArthurWangCN commented 1 year ago

哪些会引起回流和重绘

回流:

重绘: color、border-style、visibility、background、text-decoration、outline、border-radius、box-shadow等

ArthurWangCN commented 1 year ago

如何减少回流和重绘

  1. 集中改变样式,不要一条一条地修改 DOM 的样式。
  2. 不要把 DOM 结点的属性值放在循环里当成循环里的变量。
  3. 使用绝对位置定位页面上的动画元素,将其脱离文档流,可以有效的防止重排。
  4. 不使用 table 布局。因为可能很小的一个小改动会造成整个 table 的重新布局。
  5. 动画实现的速度的选择,动画速度越快,回流次数越多