Являются ли значения свойств в CSS чувствительными к регистру?

Я заметил, что некоторые свойства CSS, такие как font-family объявленные в кавычках, возможно, чувствительны к регистру, но все остальные не учитывают... Но как ДОЛЖНЫ интерпретироваться веб-браузеры и "средства визуализации HTML"? То же самое в любом контексте CSS (XML, SVG и т.д.) И во всех других приложениях? О чем говорят стандарты?

Пример: Adobe InDesign экспортировал как font-family:'Optima Bold' и font-family:'optima bold'. Можно ли "нормализовать в нижний регистр" (например, объединить похожие классы)?

ЗАМЕТКИ

Список литературы неполный и конфликтующий:


По сравнению с этим вопросом/ответами, смысл здесь, возможно, можно перевести на некоторые (личные) объективные соображения:

  1. Есть (объективный!) Нормативный (W3C спецификация CSS2, CSS3, XHTML1 или HTML5) источник для этого ответа?

  2. "Стандартные уникальные имена font-family " не могут быть чувствительными к регистру (в противном случае они перестают быть стандартными)... Таким образом, единственными оправданными (посредством разумных аргументов) свойствами, которые должны быть чувствительными к регистру, являются:

    2.1. Значения X в url(X), см. Свойства background и т. Д.;

    2.2. значения content, пример;

    2,3.... больше??...

Ответ 1

(обновление @ÁlvaroG.Vicario ответа и комментариев, а также дополнение этого ответа... Это Вики, пожалуйста, отредактируйте для улучшения)

Пример: для CSS3 (и HTML5) появились новые явные правила, так как "свойство font-face должно быть без учета регистра". [2]


контекст

Стандарты взаимодействия W3C, в основном XML, HTML, CSV и CSS.

Общие правила CSS

CSS2 (стандарт W3C 2008 года) исправил базовые соглашения о "символах и падежах", а CSS3 (стандарт W3C 2015 года) добавил кое-что еще.

  1. По умолчанию "весь синтаксис CSS не зависит от регистра (...)" [1]

  2. Есть исключения: "(...) за исключением частей, которые не контролируются CSS" [1]

    2.1. Имена элементов чувствительны к регистру в HTML5 (?) и XML, но нечувствительны к регистру в HTML4.

    2.2. идентификаторы (включая имена элементов, классы и идентификаторы в селекторах) чувствительны к регистру. Атрибуты HTML id и class, имен шрифтов и URI выходят за рамки спецификации CSS.

  3. ....

Матрица случая

Исключения и особые (изложенные в ссылке) правила. "ДА" означает, что значение чувствительно к регистру.

Значения свойства:

 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, с. 4.1.3 Персонажи и падеж.

[2] W3C/CSS3-шрифты, сек. 5.1 Чувствительность к регистру названий шрифтов

[3] W3C/CSS3-цвет, сек. 4.1. Основные цветные ключевые слова

[4] W3C/CSS3-значения, сек. 3.1. Предопределенные ключевые слова

[5] W3C/Селекторы, сек. 3. Чувствительность к регистру

[6] W3C/Селекторы4, сек. 6.3. Чувствительность к регистру

[7] RFC 3986 и иллюстрация синтаксиса URL в Википедии.


Цитаты и заметки

  • Типичные URL-адреса начинаются с домена, то есть без учета регистра, но после него (пути, запрос или фрагменты синтаксических компонентов) с учетом регистра. Смотри [7].

  • Msgstr "Пользовательские агенты должны соответствовать этим именам без учета регистра". [2]

Ответ 2

Спецификация для CSS 2 говорит:

Синтаксис CSS не учитывает регистр в диапазоне ASCII (т.е. [a-z] и [A-Z] эквивалентны), , за исключением частей, которые не находятся под контролем CSS. Например, чувствительность к регистру значений HTML атрибуты "id" и "class", имена шрифтов и URI лежат вне объем этой спецификации. Обратите внимание, в частности, что имена элементов нечувствительны к регистру в HTML, но чувствительны к регистру в XML.

... что имеет смысл: сам CSS принимает как background-image, так и background-image, но не имеет никакого способа узнать, считает ли ваш веб-сервер LOGO.PNG и LOGO.PNG идентичными или разными ресурсами.

(Я не смог найти эквивалентный документ для CSS3)