css-variables - CSS 自定义属性作为另一个属性的后备值,而不是固定(预定义)值

标签 css-variables

CSS 自定义属性允许在缺少变量的情况下使用回退值,例如:

:root {
  --color1:red;
  --color2:blue;
}

body {
  background:var(--color1,gray);
  color:var(--foo,yellow);
}

将导致BODY的背景色为红色(因为--color1确实存在),但文本为黄色,因为--foo 自定义属性不存在。

似乎不可能将 CSS 自定义属性也用于后备值,因此此代码:

body {
  background:var(--color1,gray);
  color:var(--foo,--color2);
}

不会产生蓝色文本,但会使用默认浏览器颜色,通常是黑色。

为什么会出现这种行为?

最佳答案

自定义属性或 CSS 变量只能使用 var() 函数访问。

使用var(--my-var, var(--my-background,pink))

有关更多信息,请查看 Custom property fallback values .

关于css-variables - CSS 自定义属性作为另一个属性的后备值,而不是固定(预定义)值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59306760/

相关文章:

css - Angular 7 SCSS 不保留 CSS 自定义属性

css - Ionic 4 改变输入颜色

dialog - CSS 变量在 dialog::backdrop 中不起作用

css - CSS 变量在 Microsoft Edge 中的工作方式是否不同?

javascript - 获取使用 calc 等表达式的 CSS 变量的计算值

css - 使用 attr() 更新 CSS 变量

javascript - 如何列出元素中的所有 css 变量名称/值对

javascript - 在 jQuery 中修改 CSS 变量/自定义属性

css - 每次样式更新时,浏览器都会下载背景图片(使用 CSS 变量设置),为什么?

css - 通过SASS函数自动生成css变量