回流,重绘相关

  1. 回流和重绘
  2. opacity:0;visibility:hidden;display:none;

回流和重绘

重绘就是节点几何属性变化或者样式变化不影响布局的,叫重绘,比如 outline,visibility,color 等。
回流就是布局改变,一个元素的回流可能导致所有子节点以及 dom 后面的节点,祖先节点的回流。

回流必定引发重绘,重绘不一定会回流。

获取某些属性,比如 clientTop,scrollTop,offsetTop,width,getComputedStyle 等的时候会强制回流以及重绘来保证正确。

如何优化:

  • 少用 top,用 transform 这样
  • 比如使用 visibility 而不是使用 display,因为改变 display 会导致渲染树变化,会回流 2.
  • 避免使用 table 布局
  • 避免太复杂的内联样式
  • 动画效果用到 fixed 或者 absolute 的元素上,避免影响其他元素布局
  • 设置属性触发 CSS3 硬件加速
  • 避免频繁操作样式以及 dom
  • 避免频繁读取

opacity:0;visibility:hidden;display:none;

相同点:
都能让节点不显示
区别:
继承:
display 和 opacity 不继承,visibility 被子元素继承,子元素修改后可以展示
结构:
display 不再渲染树中,其他两个在;opacity 可以点击,其他两个不行
性能:
display 会触发回流,性能最差,其他两个只是重绘性能还好。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 981909093@qq.com

文章标题:回流,重绘相关

文章字数:325

本文作者:泽鹿

发布时间:2019-08-01, 14:24:02

最后更新:2019-09-02, 14:18:49

原始链接:http://panyifei.github.io/2019/08/01/前端面试/问答/css/回流,重绘/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏