所以,我正在尝试设计一个样式表,它将为我们提供快速简便的自定义选项(一些团队成员对CSS的理解有限,构建一个'主题表'可能会更安全容易编辑)
我正在声明我的变量:root并稍后在css文件中使用它们,但我观察到如果css找不到变量,它会恢复为默认值而不是使用之前提供的值CSS。
:root {
--global-font: empty;
--global-font-color:empty;
--global-bg-color: #282a33;
}
我目前正在设置它继承作为尝试解决此问题,但仍然从其父容器中提取值,并且网页已经选择了默认主题,如果我们继承,它通常会破坏它们。
body
{
font: var(--global-font,inherit);
color: var(--global-font-color,inherit);
background-color:var(--global-bg-color,inherit);
}
我最终的解决方案是注释掉除了那些之外的所有变量 正在使用。这允许我在第二个中指定默认值 var()的字段除了变量之外总是默认为 存在。这不是我的目标,但我相信它 只有基本css范围内的解决方案。
答案 0 :(得分:2)
很抱歉,由于级联变量的性质,无法指定var()
表达式,该表达式将使其声明无效,而不会影响级联的其余部分。来自规范:
注意:存在invalid at computed-value time概念,因为变量不能像其他语法错误一样“早期失败”,所以当用户代理实现属性值无效时,它已经被抛弃了其他级联值
您的自定义属性必须是强制性的,您必须确保主题作者指定所有属性。