CSS动画中的计算值与指定值

问题描述 投票:0回答:2

MDN说:

如果未指定from / 0%to / 100%,则浏览器将使用所有属性的计算值启动或完成动画。

在下面的例子中,height属性computed value0px

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>

enter image description here

但浏览器使用height: auto;,这是specified value元素,这就是动画不起作用的原因。

这里有类似的spec

如果未指定0%from关键帧,则用户代理使用动画属性的计算值构造0%关键帧。如果未指定100%to关键帧,则用户代理使用动画属性的计算值构造100%关键帧。

但是如果浏览器实际上添加了from {height: 0px;},这是计算值,那么动画将正常工作。在上述文档中使用指定值而不是计算值是否更准确?

css css-animations specifications computed-style
2个回答
0
投票

MDN有权,因为height:auto的计算值是height:auto。 0px是使用的值。

据MDN再次说:

但是,对于某些属性(百分比相对于可能需要布局确定的内容,例如宽度,边距右,文本缩进和顶部),指定值百分比将变为百分比计算值。


0
投票

MDN是正确的,高度is actually auto的初始值,浏览器显示的“计算”值是特殊关键字和初始值转换为的值。

© www.soinside.com 2019 - 2024. All rights reserved.