You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

仅定义0%状态的CSS scaleX关键帧动画为何仍能正常运行?

CSS @keyframes 缺失关键帧的运行规则

这是CSS动画规范明确定义的默认补全行为,具体规则如下:

  • 当@keyframes中没有显式声明*0%(也可写为from)关键帧*时,浏览器会自动使用元素应用动画前的原有属性值作为起始帧状态
  • 当@keyframes中没有显式声明*100%(也可写为to)关键帧*时,浏览器会自动使用元素不应用动画时的最终属性值作为结束帧状态
  • 如果整个@keyframes规则内没有定义任何合法的关键帧,动画会直接失效不执行

你给出的示例中仅定义了grow动画的0%状态为transform: scaleX(0),未定义100%状态,浏览器就会自动补全100%状态为div元素的默认transform值transform: scaleX(1),和你写全0%、100%的示例效果完全一致,所以可以正常运行。

你测试用的代码如下:

div { 
  width: 100px; 
  height: 100px; 
  background: red; 
  position: relative; 
  animation: grow 5s; 
} 
@keyframes grow { 
  0% { transform: scaleX(0); }
}
<body> 
  <h1>The @keyframes Rule</h1> 
  <div></div> 
</body>

内容的提问来源于stack exchange,提问作者gmoniava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:45:10