【发布时间】:2019-09-01 01:50:01
【问题描述】:
我正在尝试为盒子模型属性设置 CSS 变量。我想支持为所有方面以及个别方面设置值。我想拥有默认值,但无论哪种方式都可以覆盖。 我尝试使用后备值,但收效甚微。
类似:
:root {
--border-width-top: 0;
--border-width-right: 0;
--border-width-bottom: 0;
--border-width-left: 0;
--border-width: 0;
}
div {
border-color: red;
border-style: solid;
border-width: var(--border-width, var(--border-width-top) var(--border-width-right) var(--border-width-bottom) var(--border-width-left));
}
div {
--border-width-top: 10px;
}
这不会像border-width 有一个默认值一样工作,那么它将始终优先于备用值。 不确定目前是否有办法做到这一点,但我感觉离找到解决方案很近了。
这是我正在玩的堆栈闪电战:stackblitz
【问题讨论】:
-
Kukkuz 的回答适用于您的特定示例,但恐怕您真的在问是否有一种方法可以“取消定义”在 DOM 树中较高层定义的变量。还是我想多了?
-
@MrLister 你是对的,看看 Temani 的解决方案
标签: css css-variables