【发布时间】:2020-06-01 11:41:25
【问题描述】:
使用 CSS 变量(CSS 自定义属性)时,为什么 设置语法 和 获取语法 不同?
如果我想为--my-custom-width 设置一个值,我将使用:
:root {
--my-custom-width: 120px;
}
如果我希望获得--my-custom-width 的值,我将使用var() 函数来检索相同的值:
.my-div {
width: var(--my-custom-width);
}
为什么我们不简单地写:
.my-div {
width: --my-custom-width;
}
【问题讨论】:
-
简单的答案:它是这样定义的。你不能给出一个合乎逻辑的理由来说明为什么它不能相反,因为它可能是这样的。
-
我同意 Temani;答案似乎很简单,“因为规范是这样说的”。
-
@Rounin 直接等于 12px。自定义属性有一个值,
--my-width的值是12px,就像width的值是12px。来自规范:自定义属性是普通属性,因此它们可以在任何元素上声明,通过普通继承和级联规则解析 ..注意普通。跨度> -
您的问题只是关于围绕与含义无关的语法做出的决定。您问为什么使用语法 A 而不是语法 B,这是基于意见和工作组做出的简单决定。就像你在问为什么我们应该在每个 CSS 声明结束时使用
;或者为什么我们在编写媒体查询时需要@。 -
我了解您认为这是语法问题。我在下面的回答中建议
var()更好地理解为在真实主题上执行真实任务的真实函数。
标签: css css-variables