如何将 CSS3转换应用于除背景位置之外的所有属性?

我想应用一个 CSS 转换到除了背景位置以外的所有属性。 I tried to do it this way:

.csstransitions a {
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
-ms-transition: all 0.3s ease;
transition: all 0.3s ease;
}


.csstransitions a {
-webkit-transition: background-position 0s ease 0s;
-moz-transition: background-position 0s ease 0s;
-o-transition: background-position 0s ease 0s;
-ms-transition: background-position 0s ease 0s;
transition: background-position 0s ease 0s;
}

首先,我将所有属性设置为转换,然后尝试只覆盖背景位置属性的转换。

然而,这似乎也重置了所有其他属性-所以基本上没有任何转换似乎不再发生。

有没有不列出所有属性的方法?

119134 次浏览

试试:

-webkit-transition: all .2s linear, background-position 0;

这种方法对我很有效。

希望不要迟到,只用一句话就完成了!

-webkit-transition: all 0.2s ease-in-out, width 0, height 0, top 0, left 0;
-moz-transition: all 0.2s ease-in-out, width 0, height 0, top 0, left 0;
-o-transition: all 0.2s ease-in-out, width 0, height 0, top 0, left 0;
transition: all 0.2s ease-in-out, width 0, height 0, top 0, left 0;

你必须用逗号分隔 CSS 属性。

下面是一个工作示例: http://jsfiddle.net/H2jet/

试试这个..。

* {
transition: all .2s linear;
-webkit-transition: all .2s linear;
-moz-transition: all .2s linear;
-o-transition: all .2s linear;
}
a {
-webkit-transition: background-position 1ms linear;
-moz-transition: background-position 1ms linear;
-o-transition: background-position 1ms linear;
transition: background-position 1ms linear;
}

这里有一个同样适用于 Firefox 的解决方案:

transition: all 0.3s ease, background-position 1ms;

我做了一个小样本: http://jsfiddle.net/aWzwh/

您可以尝试使用标准的 W3C 方式:

.transition { transition: all 0.2s, top 0s, left 0s, width 0s, height 0s; }

Http://jsfiddle.net/h2jet/60/

对于任何寻找速记方法的人来说,要为所有属性 除了一个特定的延迟财产添加转换,请注意即使在现代浏览器中也存在 分歧

下面的一个简单演示展示了两者的区别

div:hover {
width: 500px;
height: 500px;
border-radius: 0;
transition: all 2s, border-radius 2s 4s;
}

Chrome will "combine" the two animation (which is like I expect), like below:

enter image description here

而 Safari“分离”了它(这可能是意料之外的) :

enter image description here

一种更兼容的方法是,如果其中一个属性有延迟,则为特定属性分配特定的转换。