Могу ли я использовать camelCase в именах классов CSS?

Я хочу назвать класс CSS и назвать его imgSuper. Могу ли я использовать camelCasing в классах CSS?


person KJai    schedule 10.10.2009    source источник


Ответы (4)


Технически да, но это рискованно, потому что, хотя синтаксис CSS в основном нечувствителен к регистру, в некоторых браузерах при определенных условиях имена классов обрабатываются как чувствительные к регистру, поскольку спецификация не указывает, как браузеры должны обрабатывать регистр при сопоставлении правил CSS с классом HTML. имена.

Из спецификации, раздел 4.1.3:

Весь синтаксис CSS нечувствителен к регистру в пределах диапазона ASCII...

В CSS идентификаторы (включая имена элементов, классы и идентификаторы в селекторах) могут содержать только символы [a-zA-Z0-9] и символы ISO 10646 U+00A1 и выше, а также дефис (-) и знак подчеркивания ( _); они не могут начинаться с цифры или с дефиса, за которым следует цифра. Идентификаторы также могут содержать экранированные символы и любой символ ISO 10646 в виде числового кода (см. следующий пункт). Например, идентификатор "B&W?" может быть записано как "B\&W\?" или "B\26W\3F".

... чувствительность к регистру значений атрибутов HTML "id" и "class", имен шрифтов и URI выходит за рамки этой спецификации.

Вместо того, чтобы изучать браузеры и условия, в которых регистр чувствителен, лучше просто понять, что лучший подход является наиболее совместимым: используйте один и тот же регистр во всем коде для данного класса CSS и не создавайте два или более класса CSS. имена, отличающиеся только регистром.

person Warren Young    schedule 10.10.2009

Конечно. здесь приведены официальные правила; в основном вы не должны начинать имя с цифры, и вы можете использовать буквы, цифры, дефис, подчеркивание и экранированные или закодированные символы.

Однако по соглашению вместо верблюжьего регистра обычно используются дефисы.

person Jacob Mattison    schedule 10.10.2009
comment
Дефисы в классах, верблюды в идентификаторах, особенно потому, что собственный javascript не может использовать дефисы в идентификаторах элементов. - person doublejosh; 10.03.2012
comment
Официальная спецификация HTML5 говорит "All attribute names on HTML elements in HTML documents get ASCII-lowercased automatically", будет ли имя класса также включено при произнесении имен атрибутов?? если да, то избегать использования верхних регистров может быть только хорошо. см. w3.org/ html/wg/drafts/html/master/ - person Adrien Be; 08.08.2014
comment
хм, я только что заметил, что там написано "attribute names", а не значения атрибутов. Смущенный. Вся эта путаница с именами и значениями атрибутов, которые автоматически переводятся в нижний регистр или нет, вероятно, является основной причиной, по которой все приняли соглашение НЕ использовать верблюжий регистр. см. reference.sitepoint.com/css/casesensitivity и w3.org/TR/html401/types.html#h-6.1 - person Adrien Be; 08.08.2014

Да, имена классов чувствительны к регистру, так что это нормально.

Однако вы должны знать, что некоторые браузеры понимают это неправильно и не рассматривают имена классов как чувствительные к регистру. Поэтому вам следует избегать использования одного и того же имени как в верхнем, так и в нижнем регистре. Некоторые браузеры могут рассматривать классы imgSuper и imgsuper как одно и то же.

person Guffa    schedule 10.10.2009
comment
Почему минус? Если вы не объясните, что именно вы считаете неправильным, это не улучшит ответ. - person Guffa; 19.01.2017

Да, ты можешь. Просто убедитесь, что если вы называете класс «fooBar» в своем файле css, вы используете согласованные заглавные буквы при назначении class = «fooBar» в своей разметке.

person ozona    schedule 10.10.2009