有一个新的CSS属性,称为will-change,您可以定义将经常更改的属性,以便浏览器可以对其进行优化.例如:
.element { will-change: transform,opacity; }
但相反呢?对于不会改变的事情,是否有任何建议或工作草案?使用它可以提示浏览器,该属性永远不会改变(常量),所以它可以对它做一些优化?
解决方法
浏览器已经针对“默认情况下不会更改”的属性优化了布局算法. will-change是一种选择属性的方法,可能会改变(尽管属性名称中的“will”可能会暗示),因此浏览器可以预先执行必要的优化,以确定这些属性何时发生更改(至少从其初始值开始) .
可以这样考虑:未改变的属性已经被优化为“不会改变”,或“它们是否改变在性能上没有任何有意义的差异”.
例如,你的改变声明会告诉浏览器为.element元素创建一个合成层,如果它们需要被转换或进行alpha合成,那么它们的渲染就是从一开始就硬件加速了.由于此更改声明不适用于没有此类的元素,因此浏览器假定其他元素永远不会被转换或进行alpha合成,因此不需要此合成层.通过不为它们创建合成层,浏览器已经优化了这些元素的渲染,而不是硬件不必要地加速它们.