取消设置/删除自定义属性/ CSS变量

Phi*_*rer 5 html css css3 css-variables

请看以下示例:

.article, .note {
    color: var(--text-color, red);
 }
 .theme {
    --text-color: blue;
 }
 .theme .note {
     --text-color: unset;
 }
Run Code Online (Sandbox Code Playgroud)
<section>
    <p class="article">Article</p>
    <p class="note">Note</p>
</section>
<section class="theme">
    <p class="article">Article</p>
    <p class="note">Note</p>
</section>
Run Code Online (Sandbox Code Playgroud)

是否可以通过取消设置CSS变量使第二个"注"再次变为红色?

我知道我只能应用CSS变量,.article但我假设我有很多类似的元素,我希望应用主题,但只有少数豁免.然后维护选择器会相当繁琐.

我可以将主题选择器更改为.theme :not(.note)但不适用于.note嵌套在其他元素中的任何元素.

dip*_*pas 7

您可以使用该值initial,因为IE 支持CSS变量,这不是使用initial此问题(IE 也不支持)

.article,
.note {
  color: var(--text-color, red);
}

.theme {
  --text-color: blue;
}

.theme .note {
  --text-color: initial;
}
Run Code Online (Sandbox Code Playgroud)
<section>
  <p class="article">Article</p>
  <p class="note">Note</p>
</section>
<section class="theme">
  <p class="article">Article</p>
  <p class="note">Note</p>
</section>
Run Code Online (Sandbox Code Playgroud)