在所有元素上设置全局背景CSS3转换是否有任何缺点?

在所有元素上设置全局背景CSS3转换是否有任何缺点?,css,cross-browser,css-transitions,Css,Cross Browser,Css Transitions,我已经开始在我的一个项目中使用CSS3转换,我发现我基本上希望在悬停时对每个元素的背景色进行转换 如果我做了类似的事情 a { transition-property: background; transition-duration: 0.15s; transition-timing-function: ease-out; transition-delay: 0; } 甚至 * { transition-property: background; transition-

我已经开始在我的一个项目中使用CSS3转换,我发现我基本上希望在悬停时对每个元素的背景色进行转换

如果我做了类似的事情

a {
  transition-property: background;
  transition-duration: 0.15s;
  transition-timing-function: ease-out;
  transition-delay: 0;
}
甚至

* {
  transition-property: background;
  transition-duration: 0.15s;
  transition-timing-function: ease-out;
  transition-delay: 0;
}
有什么坏处吗?因为它不会影响不改变背景颜色的元素,所以我想到的唯一问题是它会对浏览器产生一些影响


使用过多的转换是否会导致浏览器滞后?或者有什么特殊情况需要我一起禁用过渡吗?

当动画实际发生时,过渡肯定会很昂贵,但我认为除此之外几乎没有什么效果

通用选择器并不像大多数人想象的那样慢。将样式应用于永远不会使用这些样式的元素是一种浪费,但这种浪费并不能弥补多少。这就是说,最好明确您要将转换应用于哪些元素,但在这种情况下,如果您可以证明这样做是合理的,我认为应用全局转换听起来是公平的

我认为您必须小心,不要对太多元素的转换属性应用更改。例如,在您的情况下,请记住
:hover
状态应用于元素及其所有祖先(无论如何,在具有定义良好的
:hover
行为的桌面浏览器中)

值得一提的是,现代浏览器在很多方面都配备了硬件加速功能(IE9+几乎支持一切);再加上现代硬件,几乎没有任何明显的性能变化,至少在台式机和笔记本电脑上是如此。移动硬件(智能手机和平板电脑)可能会受到更多限制,但如果您使用响应式设计,您可以通过
@media
切换轻松关闭过渡

这只是我的两分钱。我自己也没怎么玩过转换,但总结一下:我宁愿在应用转换时具体一些,但只要你知道自己在做什么,就可以普遍应用它们


当然,您可以通过使用任何选择器创建新规则并赋予它
转换属性:none

在运行自动测试时,您需要禁用所有转换,从而始终禁用某些元素上的转换。禁用转换将通过停止使用BrowserDriver.wait()来帮助您。。跑步会更快