【发布时间】:2012-02-15 08:59:17
【问题描述】:
我对 css3 过渡属性的渲染速度有疑问。
假设我有许多元素:
div, span, a {transition: all}
div {margin: 2px}
span {opacity: .5}
a:hover {background-position: left top}
div:hover {margin: -100px}
span:hover {opacity: 1}
a:hover {background-position: -5px top}
使用一个声明div, span, a {transition: all} 来定位所有这些元素的所有转换效率要高得多。但我的问题是:就动画渲染的平滑度和速度而言,以每个元素的特定过渡属性为目标会“更快”吗?例如:
div {margin: 2px; transition: margin .2s ease-in}
span {opacity: .5; transition: opacity .2s ease-in}
a {background-position: left top; transition: background .2s ease-in}
div:hover {margin: -100px}
span:hover {opacity: 1}
a:hover {background-position: -5px top}
我提出这个问题的逻辑是,如果 css“引擎”必须搜索“所有”过渡属性,即使一个元素只有一个属性,它可能会减慢速度。
有人知道是不是这样吗?谢谢!
【问题讨论】:
-
这也是我的理论,但在实践中我从未注意到任何差异。
-
我希望在屏幕上实际执行动画会比解析 CSS 更昂贵。除非你滥用系统,否则我不会太担心。
-
我认为如果有差异,它会以毫秒为单位——但我想知道是否有微小的差异。谢谢你的 cmets
-
这对我来说是“供应商特定的实现细节”......
标签: performance css css-transitions