在Chrome浏览器中,CSS属性不能使用除像素以外的单位

前端开发 2026-07-10

当我在CSS中尝试创建一个 类型的属性时,如果不使用像素作为单位,Chrome就会报错:

@property --my-width {
  syntax: "<length>";
  inherits: true;
  initial-value: 2em;
}

Debug from Chrome browser showing highlighted error

Firefox看起来没问题,摘要文档也说可以,但Chrome说“不行!”。

我的语法正确吗?

我正在尝试让滚动条的宽度进行过渡(这步是可行的),但如果不使用像素就卡住了。

解决方案

你可以使用除像素以外的单位,但你不能使用 em,因为它们并非计算独立(computationally independent);没有一个单一的值可以在该属性的任何地方应用。

请参阅例如MDN的说明(以下为我强调的部分):

如果 syntax 描述符的值不是通用语法定义,那么 initial-value 描述符必须是一个 computationally independent 值。这意味着该值在转换为计算值时不依赖于其他值,除了与CSS全局无关的定义。举例来说,10px 是计算独立的——它在转换为计算值时不会改变。2in 也是有效的,因为 1in 总是等价于 96px。然而,3em 不成立,因为 em 的值依赖于父级的 font-size

(The "universal syntax definition"syntax: "*"。)

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章