подчеркивание в начале css ID в режиме IE9 quirks не регистрируется - PullRequest
4 голосов
/ 13 июня 2011

У меня есть динамически загруженный файл CSS, который содержит строку css с идентификатором, подобным следующему:

#__my_css_id{

   width: 100%;
   height: 100%;
   left: 0px;
   top: 0px;
   position: fixed;
   background-color: #202020;
}

Я НЕ МОГУ изменить тот факт, что эта страница отображается в режиме причуд, так как это удаленно размещенный скриптэто мой сценарий)Некоторые страницы являются причудами, некоторые нет.

В режиме причуд и IE9 (не пробовал другие версии IE) CSS не загружается должным образом или вообще не загружается.На самом деле, если я отлаживаю css с помощью отладчика IE (F12), я вижу все CSS, но все идентификаторы css говорят НЕИЗВЕСТНО, если они начинаются с двух символов подчеркивания, как этопроверьте CSS, ни одно из правил CSS не существует.Разве режим причуд не разрешает подчеркивание в начале идентификатора CSS?

Спасибо!

1 Ответ

2 голосов
/ 14 апреля 2012

Двойное подчеркивание работает в CSS2, но режим quirks является частичной реализацией CSS1. CSS2 spec говорит:

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

Хотя подчеркивание является недопустимым символом в CSS1 :

В CSS1 селекторы (имена элементов, классы и идентификаторы) могут содержать только символы A-Z, 0-9 и символы Unicode 161-255, плюс тире (-); они не могут начинаться с тире или цифры; они также могут содержать экранированные символы и любые символы Юникода в виде числового кода (см. следующий элемент).

...