小编典典

CSS中的属性值区分大小写吗?

css

我已经观察到某些CSS属性(例如font-family带引号声明的属性)可能区分大小写,而其他属性则不区分大小写……但是 ,网络浏览器和“
HTML渲染器”必须如何解释?
在任何CSS上下文(XML,SVG等)和所有其他应用程序中都一样吗? 标准怎么说?

示例: Adobe InDesign 导出了font-family:'Optima Bold'font-family:'optima bold'。我可以“规范化为小写”(例如合并类似的类)吗?


阅读 997

收藏
2020-05-16

共1个答案

小编典典

(更新@ÁlvaroG.Vicario的答案和评论,并对这个答案进行补充…这是一个Wiki, 请进行编辑以增强效果

示例:对于CSS3(和HTML5),存在新的显式规则,因为“ font-face属性必须不区分大小写”。[2]


语境

W3C互操作标准,主要是XML,HTML,CSV和CSS。

CSS一般规则

CSS2 (2008年的W3C标准)修复了有关“字符和大小写”的基本约定,而 CSS3 (2015年的W3C标准)增加了更多内容。

  1. 默认情况下, “所有CSS语法都不区分大小写(…)” [1]

  2. 有例外情况 ,“((…)除外,这些部分不受CSS的控制” [1]

2.1。元素名称在HTML5(?)和XML中区分大小写,但在HTML4中不区分大小写。

2.2。标识符(包括选择器中的元素名称,类和ID)区分大小写。HTML属性idclass,字体名称和URI不在CSS规范的范围内。

  1. ....

案例矩阵

异常和特定(在参考资料中有说明)规则。“YES”表示该值 大小写敏感的。

属性值:

Property values:

 CSS property      | Case-sens. | Reference and notes
 ------------------|------------|--------------------
 %colorVals        | NO         | [3]
 font-family       | NO         | [2]
 %url              | YES        | ...
 content           | YES        | ...
 ----------------------------------------------------
 %colorVals = color, background, etc.
 %url = background-image, etc. that use `url()`, see [7] and notes. 

Selector values:

 CSS selector      | Case-sens. | Reference and notes
 ------------------|------------|--------------------
 id                | YES        |...
 element           | YES/NO     | ... YES for XML...
 class name        | YES        | [5]
 (`~ i` operator)  | NO         | [6]
 ----------------------------------------------------
 YES/NO = depends on the document language (see ref. and notes).
2020-05-16