这些双短划线CSS属性有什么作用?

Fin*_*sse 22 css

我在这里遇到了这个奇怪的CSS代码:

:root {
    --color-link: #04b;
    --color-link-visited: #551a8b;
    --color-link-minor: #669;
    --color-black: #000;
    --color-grey: #999;
    --font-thin: HelveticaNeue-thin,sans-serif-thin;
    --font-light: HelveticaNeue-Light,sans-serif-light;
    --text-s: 11px;
    --text-s-line-s: 1em;
    --text-s-line-m: 1em;
    --typo-caps: 11px;
    --typo-greenurl: 13px;
}
Run Code Online (Sandbox Code Playgroud)

我以前从未见过这样的CSS属性名称,也无法找到有关它们的信息.但浏览器检查员(在Chrome,Safari和Firefox中检查过)表示它们是有效的CSS属性,因此它必须是CSS标准.

我试图添加自己的属性,它是有效的:

:root {
    --color-foobar: #000;
}
Run Code Online (Sandbox Code Playgroud)

这些属性有什么作用?CSS标准描述了什么?我在哪里可以找到它的参考?

Far*_*had 29

双引导破折号用于定义自定义属性.有关更多信息,请查看此W3C规范页面.

W3C的例子:

:root {
  --main-color: #05c;
  --accent-color: #056;
}

#foo h1 {
  color: var(--main-color);
}
Run Code Online (Sandbox Code Playgroud)

  • @FrankNocke 说实话,我不认为 IE 是浏览器:) (7认同)
  • ...基本上就像一个 scss $variable ,除了它不会在 sass 转译中得到解析,而是在浏览器中真正的客户端得到解析。 (6认同)
  • @Finesse 我关心99% (2认同)
  • @Finesse 对于极少数拥有巨额预算和庞大开发团队的公司来说,创建了大量内部库。如果出于某种原因,您遇到关心 IE 的小型预算公司,那么他们的管理不善,正在榨取您的利益。世界其他地方不应该打扰。停止复活尸体 (2认同)