18910140161

是否可以检查是否定义了CSS变量?-堆栈溢出

顺晟科技

2022-10-19 11:37:26

144

我想知道是否只有在定义了CSS变量的情况下才可以应用CSS规则。我已经看到可以定义默认值,比如:

background-color: var(--bgColor, red);

但我不认为这在我的项目中行得通,因为我希望当变量没有被定义以获得如果CSS中没有该行时它将具有的样式时。

我添加了一个代码,以便更容易理解我所说的内容:

https://codepen.io/xmorell/pen/bgwloal


顺晟科技:

因为我想要的是,当变量没有定义时,它将获得如果CSS中没有该行时它将具有的样式。

即使使用无效值,这也是不可能的。

摘自规范

如果声明包含的var()引用了具有初始值的自定义属性(如上所述),或者如果声明使用了有效的自定义属性,但该属性值在替换其var()函数后无效,则声明在计算值时可能无效。当发生这种情况时,属性的计算值要么是该属性的继承值,要么是其初始值,这取决于该属性是否被继承

如果属性包含一个或多个var()函数,并且这些函数在语法上是有效的,必须假定整个属性的语法在解析时是有效的。只有在var()函数被替换之后的计算值时才对其进行语法检查。

因此,使用css变量的任何属性无论其内容如何都是有效的。它仅在计算时无效,并将退回到或(永远不会退回到其他地方指定的另一个值)

请参见下面的示例。

背景不会是红色的,即使没有定义css变量,并且我使用了一个明显无效的值,这个奇怪的值也是有效的。

不能在变量中设置默认值, 您可以为默认值和变量值定义相同的键

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航