此问题已在此处有答案:
Unset/Delete a custom property/CSS variable(1个答案)
19天前关闭。
这篇文章是编辑并提交审查5天前.
我想创建一个组件并公开某些可以被父元素重写的属性。
我希望这些属性被 * 声明 * 在CSS类声明的顶部,这样它们就可以被快速读取,类似于我们在编程中读取函数签名的方式。
举个例子。假设我正在创建一个按钮,它有自己的颜色,但如果定义了--button-bg-color
,则允许更改其背景颜色:
.my-button {
--bg-color: blue;
/* lots of other css... */
/**
* here I assume that there might be a --button-bg-color defined,
* but I have a fallback to my own --bg-color variable
*/
background-color: var(--button-bg-color, var(--bg-color));
}
上面代码的问题是--button-bg-color
变量在样式的深层引用。
我希望我能做的是在最上面的某个地方声明,我可能想使用这个变量。这将告诉我该组件期望被覆盖。但是我需要以一种不为变量设置任何值的方式声明它。这纯粹是关于结构和意图。
像这样的?
.my-button {
/* Ideally, declare variable without referencing any values */
--button-bg-color; /* no value set, but this means the propery will used later on in this class declaration */
/* Or perhaps there is something like undefined? */
--button-bg-color: undefined;
--bg-color: blue;
/* the rest of the code is the same */
}
2条答案
按热度按时间yhxst69z1#
好吧,我刚刚意识到我们可以这样做:
这样也减少了重复。
xam8gpfp2#
我发现这个问题寻找的东西有点不同。我想有人会觉得有用的。如果你真的需要将一些自定义属性重置回undefined。以下是如何做到这一点:
因此,当只应用.theme-1时,按钮将是红色的,但同时应用两个类会将--button-bg-color重置为undefined,并且回退为蓝色。
编辑:刚刚发现你可以使用 initial 关键字。它似乎是一样的工作。最初解决方案是将其设置为任何未定义变量。例如:var(--undefined)。