【发布时间】:2012-10-19 07:26:15
【问题描述】:
我正在尝试使用 CSS3 过渡创建选定或悬停菜单效果。我通过同时为border-left-width和padding-left设置动画来做到这一点。边框增加了 6 像素,内边距减少了 6 像素,速度均为 0.3 秒。
在 Chrome 中,两者的动画速度相同并且看起来很流畅。在 IE 中,过渡是即时的(显然没有过渡/动画),并且看起来不错。在 Firefox 中,边框和填充同时动画,但它出现在不同的时间间隔或其他东西上,使文本和容器反弹并看起来很紧张。
这是一个 Fiddle 示例:http://jsfiddle.net/crisp330/w7phH/1/(查看 FF 和 Chrome 之间的区别?)
有没有办法让 FireFox 像 Chrome 一样流畅地制作动画?我知道我可以使用替代方法,例如在 LI 中放置另一个元素并为其设置动画……但这种方法非常干净!
这是 CSS3 过渡的主要内容(参见 jsFiddle 的工作示例):
ul li {
padding-left: 12px;
border: 0 none;
}
ul li:hover {
padding-left: 6px;
border-left: 6px solid #d17519;
transition: border-left-width .3s, padding-left .3s;
-moz-transition: border-left-width .3s, padding-left .3s;
-webkit-transition: border-left-width .3s, padding-left .3s;
-o-transition: border-left-width .3s, padding-left .3s;
}
【问题讨论】:
标签: firefox css css-transitions transition