【问题标题】:Are periods allowed in CSS variable names?CSS变量名称中是否允许使用句点?
【发布时间】:2017-02-13 23:33:47
【问题描述】:

例如,我可以有一个这样命名的 css 变量: --Button.onHover?

请注意,CSS 变量与 CSS 选择器不同(我必须对此进行解释,因为有人将其标记为重复项)。这是来自模块superfly-css-variables-colors的示例:

      :root {
        --percentage-lightest:  91%;
        --percentage-lighter:   78%;
        --percentage-light:     65%;
        --percentage-median:    52%;
        --percentage-dark:      39%;
        --percentage-darker:    26%;
        --percentage-darkest:   13%;

        --percentage-low: 25%;
        --percentage-high:  50%;

        --percentage-link-hover: 25%;
      }

【问题讨论】:

  • 期间是宣布一个类名。
  • @laser 这个问题是关于variables,而不是选择器。

标签: css css-variables


【解决方案1】:

在 CSS 中,属性名称是标识,标识不能包含句点。 They may only contain letters, numerals, the hyphen-minus and the underscore. 所以属性名不能包含句点,自定义属性名也不能。

因此,--Button.onHover 不是有效的自定义属性名称(或“CSS 变量”名称,或您想调用的任何名称)。

【讨论】:

  • 螺栓时钟你在谈论选择器。问题是询问变量名?
  • OK - Properties .... 但问题是关于variables
  • @Ole:是的,我指的是同一件事。 css-variables 规范的标题是“级联变量的自定义属性”。该规范大量引用了“自定义属性”,几乎none引用了“变量”(包括 Mike 在他的回答中引用的文本!)。其他人都喜欢称它们为“CSS 变量”,以便让自己对过去 20 年来 CSS 缺乏对变量的支持感觉更好。但我更喜欢用他们的专有名称来称呼他们。
  • @Ole:“它被定义为任何以两个破折号开头的有效标识符”w3.org/TR/css-variables-1/#defining-variables 为什么会有人关心?因为句点在 CSS 的其他地方具有特殊含义(例如,你猜对了,选择器!),并且每个浏览器都必须重写其 CSS 解析器以适应自定义属性名称(如果它们有自己的语法)——所有这些都是为了允许属性的名称中还有一个特殊字符,这些属性将永远不会在未来的任何规范中定义。真的值得这么麻烦吗?
  • @Ole:var() 表达式中的第一个参数是自定义属性名称,即使 var() 表达式本身用于属性值。所以,同样,您的问题是关于属性名称,而不是属性值,我对 Mike 的回答的评论成立。
猜你喜欢
  • 2019-10-19
  • 2012-06-22
  • 2011-07-08
  • 2016-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-17
相关资源
最近更新 更多