美文网首页
css中的repaint和reflow

css中的repaint和reflow

作者: 前端girl吖 | 来源:发表于2019-01-21 17:15 被阅读0次

    页面设计中,不可避免的存在浏览器重绘repaint和回流reflow


    介绍

    repaint:针对某个元素进行重绘。
    reflow: 针对整个页面的重排,回流。

    目的

    呈现一个新页面

    性能

    reflow性能消耗大于repaint

    如何触发

    style变动造成repaint和reflow。
    不涉及任何dom元素的排版问题的变动为repaint。

    常见触发

    触发repaint

    • color,hover引起的颜色,text-align等变化

    触发reflow

    • width/height/border/margin/padding
    • 动画,display
    • appendChild等dom元素操作
    • font字体改变
    • background的修改,注意着字面上可能以为是重绘,但是浏览器确实回流了,经过浏览器厂家的优化,部分background的修改只触发repaint,当然IE不用考虑;
    • scroll页面
    • resize页面
    • 读取元素的属性offsetLeft、offsetTop、offsetHeight、offsetWidth、scrollTop/Left/Width/Height、clientTop/Left/Width/Height、getComputedStyle()、currentStyle(in IE));
    避免
    • 改变dom样式 尽量通过dom树的最末端的class名修改,尽可能影响少的dom
    • 应用元素的动画,使用position的fixed或absolute
    • 避免使用table
    • 避免在css使用运算

    相关文章

      网友评论

          本文标题:css中的repaint和reflow

          本文链接:https://www.haomeiwen.com/subject/yuacjqtx.html