【发布时间】:2017-06-13 08:23:41
【问题描述】:
根据MDN:
如果未指定
from/0%或to/100%,则浏览器使用所有属性的计算值开始或结束动画。
在以下示例中,height 属性 computed value 是 0px:
div#parent {
width: 100px;
height: 100px;
outline: 1px solid teal;
}
div#child {
background: tan;
animation: lengthen 2s infinite;
}
@keyframes lengthen {
to {
height: 100px;
}
}
<div id="parent">
<div id="child"></div>
</div>
但是浏览器使用height: auto;,即元素specified value,这就是动画不起作用的原因。
spec 上也有类似的内容:
如果未指定
0%或from关键帧,则用户代理会使用动画属性的计算值构造0%关键帧。如果未指定100%或to关键帧,则用户代理会使用动画属性的计算值构造100%关键帧。
但是如果浏览器真的添加了from {height: 0px;},也就是计算出来的值,那么动画就可以正常工作了。上述文档中使用specified值而不是computed值不是更准确吗?
【问题讨论】:
标签: css css-animations specifications computed-style