26

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

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

笔记

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


这个问题/答案相比,这里的观点也许可以转化为一些(个人)客观考虑:

  1. 这个答案有(客观的!)规范(CSS2、CSS3、XHTML1 或 HTML5 的 W3C 规范)来源?

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

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

    2.2. content价值观,例如

    2.3. ……更多??...

4

2 回答 2

20

(更新@ÁlvaroG.Vicario 答案和评论,并补充这个答案......这是一个维基,请编辑以增强

示例:对于 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)区分大小写。字体名称和 URI 的HTML 属性idclass, 不在 CSS 规范的范围内。

  1. ……

案例矩阵

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

属性值:

CSS 属性 | 案例感。| 参考和注释
 ------------------|------------|------------------ --
 %colorVals | 否 | [3]
 字体系列 | 否 | [2]
 %网址 | 是 | ...
 内容 | 是 | ...
 -------------------------------------------------- --
 %colorVals = 颜色、背景等。
 %url = 背景图像等使用 `url()`,参见 [7] 和注释。

选择器值:

CSS 选择器 | 案例感。| 参考和注释
 ------------------|------------|------------------ --
 编号 | 是的|...
 元素 | 是/否 | ... 是的 XML ...
 班级名称 | 是 | [5]
 (`~i` 运算符) | 否 | [6]
 -------------------------------------------------- --
 是/否 = 取决于文档语言(参见参考文献和注释)。

参考:

[1] W3C/ CSS2 /syndata,秒。4.1.3 字符和大小写

[2] W3C/ CSS3-字体,秒。5.1 字体系列名称区分大小写

[3] W3C/ CSS3-color,秒。4.1。基本颜色关键字

[4] W3C/ CSS3 值,秒。3.1。预定义关键字

[5] W3C/选择器,秒。3. 区分大小写

[6] W3C/选择器4 ,秒。6.3. 区分大小写

[7] RFC 3986和Wikipedia 上的URL 语法说明


报价单和注释

  • 典型的 URL 以domain开头,不区分大小写,但在它之后(路径查询片段语法组件)区分大小写。见[7]。

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

于 2014-11-11T08:37:14.733 回答
7

CSS 2的规范说:

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

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

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

于 2013-07-31T10:51:59.463 回答