以下为使用top的盒模型
以下为使用transform的盒模型
终上可看出使用top改变了盒模型,而使用transform没有改变。
通过以下performance调试可以看出时间也有差异,top时间更长,因为使用top引起了回流。
常见引起回流属性和方法:
任何会改变元素几何信息(元素的位置和尺寸大小)的操作,都会触发回流。
(1)添加或者删除可见的 DOM 元素;
(2)元素尺寸改变——边距、填充、边框、宽度和高度
(3)内容变化,比如用户在 input 框中输入文字
(4)浏览器窗口尺寸改变——resize 事件发生时
(5)计算 offsetWidth 和 offsetHeight 属性
(6)设置 style 属性的值
(7)当你修改网页的默认字体时。 回流必定会发生重绘,重绘不一定会引发回流。回流所需的成本比重绘高的多,改变父节 点里的子节点很可能会导致父节点的一系列回流。