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

问题描述 投票:17回答:2

我观察到一些CSS属性,如用引号声明的font-family,可能区分大小写,但所有其他都不是......但是Web浏览器和“HTML渲染器”必须如何解释?在任何CSS上下文(XML,SVG等)和所有其他应用程序中是否相同?标准说的是什么?

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

笔记

参考文献不完整且存在冲突:


this question/answers相比,这里的观点或许可以转化为一些(个人)客观考虑因素:

  1. 这个答案有一个(客观!)规范(CSS3,CSS3,XHTML1或HTML5的W3C规范)来源?
  2. “标准font-family唯一名称”不能区分大小写(否则不再是标准的)...因此,区分大小写的唯一合理(通过合理的参数)属性是: 2.1。 Xurl(X)的价值,见background等属性; 2.2。 content值,example; 2.3。 ... 更多 ?? ...
html css properties case-sensitive
2个回答
16
投票

(更新@ÁlvaroG.Vicario的回答和评论,以及complementing this answer ......这是一个Wiki,请编辑增强)

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


上下文

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

CSS general rules

CSS2(2008年的W3C标准)修复了关于“角色和案例”的基本惯例,CSS3(2015年的W3C标准)增加了更多内容。

  1. 默认情况下“所有CSS语法都不区分大小写(...)”[1]
  2. 有例外,“(...)除了不受CSS控制的部分”[1] 2.1。元素名称在HTML5(?)和XML中区分大小写,但在HTML4中不区分大小写。 2.2。标识符(包括选择器中的元素名称,类和ID)区分大小写。 HTML属性idclass,字体名称和URI都位于CSS规范的范围之外。
  3. ....

Case matrix

例外和具体(在参考中明确)规则。 “YES”表示该值区分大小写。

物业价值:

 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. 

选择器值:

 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).

参考文献:

[1] W3C/CSS2/syndata, sec. 4.1.3 Characters and case

[2] W3C/CSS3-fonts, sec. 5.1 Case sensitivity of font family names

[3] W3C/CSS3-color, sec. 4.1. Basic color keywords

[4] W3C/CSS3-values, sec. 3.1. Pre-defined Keywords

[5] W3C/Selectors, sec. 3. Case sensitivity

[6] W3C/Selectors4, sec. 6.3. Case-sensitivity

[7]维基百科上的RFC 3986URL syntax illustration


Quotations and notes

  • 典型的URL以domain开头,它不区分大小写,但在它之后(路径,查询或片段语法组件),区分大小写。见[7]。
  • “用户代理必须在不区分情况下匹配这些名称”。 [2]

7
投票

CSS 2的规范说:

CSS语法在ASCII范围内不区分大小写(即,[a-z]和[A-Z]是等效的),除了不受CSS控制的部分。例如,HTML属性“id”和“class”,字体名称和URI的值的区分大小写超出了本规范的范围。请特别注意,元素名称在HTML中不区分大小写,但在XML中区分大小写。

......这很有意义:CSS本身同时接受background-imageBACKGROUND-IMAGE,但它无法知道您的Web服务器是否将LOGO.PNGlogo.png视为相同或不同的资源。

(我一直无法找到CSS3的等效文档)

© www.soinside.com 2019 - 2024. All rights reserved.