Могу ли я использовать Camel-case в именах классов CSS - PullRequest
31 голосов
/ 10 октября 2009

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

Ответы [ 4 ]

40 голосов
/ 10 октября 2009

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

С Спецификация , раздел 4.1.3 :

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

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

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

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

6 голосов
/ 10 октября 2009

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

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

1 голос
/ 10 октября 2009

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

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

0 голосов
/ 10 октября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...