我已经观察到某些CSS属性(例如font-family带引号声明的属性)可能区分大小写,而其他属性则不区分大小写……但是 ,网络浏览器和“ HTML渲染器”必须如何解释? 在任何CSS上下文(XML,SVG等)和所有其他应用程序中都一样吗? 标准怎么说?
font-family
示例: Adobe InDesign 导出了font-family:'Optima Bold'和font-family:'optima bold'。我可以“规范化为小写”(例如合并类似的类)吗?
font-family:'Optima Bold'
font-family:'optima bold'
(更新@ÁlvaroG.Vicario的答案和评论,并对这个答案进行补充…这是一个Wiki, 请进行编辑以增强效果 )
示例:对于CSS3(和HTML5),存在新的显式规则,因为“ font-face属性必须不区分大小写”。[2]
font-face
W3C互操作标准,主要是XML,HTML,CSV和CSS。
CSS2 (2008年的W3C标准)修复了有关“字符和大小写”的基本约定,而 CSS3 (2015年的W3C标准)增加了更多内容。
默认情况下, “所有CSS语法都不区分大小写(…)” [1]
有例外情况 ,“((…)除外,这些部分不受CSS的控制” [1]
2.1。元素名称在HTML5(?)和XML中区分大小写,但在HTML4中不区分大小写。
2.2。标识符(包括选择器中的元素名称,类和ID)区分大小写。HTML属性id和class,字体名称和URI不在CSS规范的范围内。
id
class
....
的
异常和特定(在参考资料中有说明)规则。“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).