使用 语法设置CSS @property

前端开发 2026-07-09

我有一个CSS @property,它使用 <image> 语法——想要一个选项可以把它设为URL或渐变。

然而,initial-value 出错:

来自浏览器开发者工具问题日志的错误信息,指示 initial-value 属性无效

这会导致该规则被忽略。

下面有一个示例,请注意 syntax: "<color>" 属性能够工作并回退到初始值,而 syntax: "<image>" 会失败:

 @property --my-background { 
    syntax: "<image>";  
    inherits: true; 
    initial-value: oklab(0.91 -0.18 0.22); /* vivid green */
 }

 @property --my-colour { 
    syntax: "<color>";  
    inherits: true; 
    initial-value: oklab(0.48 0 -0.31); /* vivid blue */
 }

 div {
     background:    var(--my-background);
     color:         var(--my-colour);
     width:         100vw;
     height:        100vh;
     font-size:     10vh;
     align-content: center;
     text-align:    center;
 }
<div>this should be blue text on a green background</div>

我尝试了RGB颜色、image()url() CSS函数,但似乎没有一个是 <image> 的有效初始值。

如何用 <image> 语法正确声明这个CSS @property

解决方案

颜色不是图片。如果你想让颜色成为图片,把它做成单色渐变(渐变其实是一张图片)

@property --my-background {
  syntax: "<image>";
  inherits: true;
  initial-value: conic-gradient(oklab(0.91 -0.18 0.22) 0 0);
}

@property --my-colour {
  syntax: "<color>";
  inherits: true;
  initial-value: oklab(0.48 0 -0.31);
}

div {
  background: var(--my-background);
  color: var(--my-colour);
  font-size: 10vh;
  padding: 30px;
  text-align: center;
}
<div>this should be blue text on a green background</div>
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章