Intertet Explorer CSS id bug

Рубрика: Development, JavaScript/Ajax | 22 September 2007, 16:55 | Vadim Voituk

Пишем такой html-код:

[xml]<style>#_hello {color:#FF0000;}</style>
<div id=”_hello”>Это в IE не работает</div>[/xml]

Просматриваем в Firefox – все отлично – текст имеет красный цвет.
Открываем в IE 6 – стиль не применяется.

Изменяем “_hello” на “hello”:

[xml]<style>#hello {color:#FF0000;}</style>
<div id=”hello”>Это в IE работает</div>[/xml]

Работает и в FF и в IE.
Вывод: Internet Explorer не применяет стили на элементы, id которых начинается с подчеркивания “_”.
Найти в сети более или менее внятное описание или причины такого поведения мне не удалось.

Комментариев: 6

6 Responses to “Intertet Explorer CSS id bug”

Комментарии:

  1. Скакунов Александр

    Я спросил нашего веб-дизайнера Диму по этому вопросу. Вот его ответ:

    как и все дибильные баги для ИЕ – нормальных научных объяснений нет…

    предполагаю просто, что имена айдишников в ИЕ ограниченны, дабы первым символом не было “_”

    так же как и нельзя использовать только цифры в качестве имен айдишников и классов

  2. vadim

    Саша, спасибо за консультацию.
    Насчет циферных id – это логично – ты же переменные тоже с цифры не называешь?.
    Когда-то я уже “наступал” на проблемму цыферных ID, но только в wml – так половина телефонов выдавало ошибку, а половину “сьедала”. Отладка была жестокой и изнуряющей :)

  3. Yuriy

    читаем спецификацию html http://www.w3.org/TR/REC-html40/types.html#type-name – ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens (“-”), underscores (“_”), colons (“:”), and periods (“.”).

  4. vadim

    Юра, спасибо за ссылку

  5. Bolzamo

    Это не баг, это фича.
    Давно всем известный хак с подчеркиванием в IE

  6. Coldman

    Bolzamo
    >Это не баг, это фича.
    >Давно всем известный хак с подчеркиванием в IE

    да, но только когда писать #hello {_color:#FF0000;} так это хак , а когда #_hello то Netscape до 6 версии тоже не поймет, и даже такое #some_hello. понимаю что он динозаврик, но когда кастомер вдруг захотел поддержку Netscape на средине проекта , а все класси в CSS били написании ” .some_hello ” через “_” , то страничка в нем выглядела полностью без стилей.

Leave a Reply