Есть ли способ обхода CSS классов с именами, которые начинаются с действительных чисел?

Относится ли это к тому, что классы CSS с именами, начинающимися с цифр, не работают? например, я обнаружил, что класс с фоном вроде:

.000000-8 {background:url(../../images/common/000000-0.8.png);}
.8FFFFFF {background:url(../../images/common/FFFFFF-0.8.png);}

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

Ответы

Ответ 1

Нет классов CSS. Вопрос логически разделяется на два вопроса: можете ли вы запустить имя класса с цифрой в HTML и (если ответ "да", как есть), если это так, как вы используете соответствующий селектор классов в CSS?

Различные спецификации HTML налагают различные ограничения на имена классов, но в практике браузера и в соответствии с HTML5 ограничений нет, за исключением того, что имя класса не может содержать пробельные символы. Итак, class=000000-8.

По правилам синтаксиса CSS, идентификатор CSS не может иметь неэкранированную цифру. Поэтому селектор типа .000000-8 недействителен. Но цифру можно избежать, правила экранирования CSS: селектор

.\30 00000-8

или, что эквивалентно,

.\00003000000-8 

действителен и соответствует элементу с class=000000-8.

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

Ответ 2

Да, он задокументирован в спецификации CSS:

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

Ответ 3

Вы можете прочитать все о точных данных о том, что является допустимым (или недействительным) при назначении имен в CSS3 (не знаю, почему все ссылаются на документы CSS2?):

http://www.w3.org/TR/css3-selectors/#w3cselgrammar