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

时间:2013-07-31 10:01:55

标签: html css properties case-sensitive

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

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

注意

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


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

  1. 这个答案有一个(目标!)规范(CSS3,CSS3,XHTML1或HTML5的W3C规范)来源?

  2. “标准font-family唯一名称”不能区分大小写(否则不再是标准的)...因此,区分大小写的唯一合理(通过合理的参数)属性是:

    2.1。 X处的url(X)值,请参阅background等属性;

    2.2。 content值,example;

    2.3。 ...... 更多?? ......

2 个答案:

答案 0 :(得分:14)

(更新@ÁlvaroG.Vicario的回答和评论,以及complementing this answer ...这是一个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规范的范围。

  3. ...

  4. 案例矩阵

    例外和具体(在参考中明确)规则。 “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


    报价和备注

    • 典型的网址以domain开头,不区分大小写,但在此之后(路径查询片段 syntatical components),区分大小写。见[7]。

    • “用户代理必须不区分大小写地匹配这些名称”。 [2]

答案 1 :(得分:6)

CSS 2的规范说:

  

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

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

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

相关问题