Ксдыщь!

Дилетантские заметки про XSLT/XPath, HTML/CSS и всякую фигню

IE 7, conditional comments и хаки

2 ноября 2006 · Комментариев: 24 · HTML/CSS, Рецептарий

В свете особенностей нового IE приходится править старые методы использования хаков.

Оптимальным вариантом для меня является подключение специфичного листа стилей для всех IE через conditional comments.

<!--[if IE]>...<![endif]-->

И использование классического сочетания «star html hack» и метода экранирования для старых IE, а также варианта без хаков для седьмого.

В результате в ie.css используются конструкции примерно следующего вида:

#element {
    zoom:1; /* IE 7 */
    }
    * HTML #element {
        height:auto; /* IE 5 */
        he\ight:1%; /* IE 6 */
        }

А у нас в квартире газ А какими методами пользуетесь Вы?

P.S. Пример с height:auto имеет абстрактный характер, height:1% для self clearing вполне достаточно.

Теги: · · · ·

Комментариев: 24 ↓

  • Vitaly Harisov

    Я ещё исползую [id]#element или [class].element, если надо написать правило только для MSIE7.

  • akella

    иногда “опускаюсь” до div[class=classname]{} – для всех кроме ИЕ5-6,
    _height для ИЕ5-6, $height для ие5-7, хотя это все и некрасиво зато в одном файле

  • Flack

    Виталий, да, видел такое. Пока еще не игрался. Надо бы.

    akella, так це ж не валидно, почему не «star html»?

  • akella

    Ну “star html” ты уже упомянул, его я тоже юзаю и решил не повторять
    а невалидность… пристыдил ) но иногда (покраснев) делаю “как проще и быстрее”, хотя это и неправильно

  • Flack

    akella, ну ты помнишь мое про «тупо и цинично», так что я не критикую :)

  • Artem Chertov

    Использую только кондишинал комментс.
    Хаки – невалидны, имхо лучше уж делать обход на DOM…

  • Flack

    Artem Chertov, неправда ваша. «star html» и экранирование — валидны.
    И с ними действительно удобно работать в одном файле для всех эксплореров. Дабы не плодить сущностей.

  • Artem Chertov

    Flack. Я не в буквальном смысле говорил о валидности. Важно, что консорциум не приветствует хаки, трюки, фрики и пр. :) …мы можем так считать, полагаясь, как минимум на результат валидации, кода статьи

    Хотя и с тем, что это удобно, тоже грех поспорить :)
    CSS Hacks – Думаю, пригодится… :)

  • Flack

    Artem Chertov, консорциум не слишком рад и уровню поддержки веб-стандартов в IE, но живет с этим.
    Тем более наш style.css валиден :) Не валиден лишь ie.css, который является заплаткой для «обозревателя интернет». Не вижу здесь никакого криминала.

    За ссылку спасибо, но баян дикий. Тысячу лет в моем делишесе валяется :) В порядке обмена опытом.

  • Artem Chertov

    Flack, ещё я считаю, что адрес, отвечающего web-стандартам сайта, сайта, не под каким предлогом недолжен, быть в консоли. А именно т.н. хаки и пр. “удобности”, туда его отправляют! :(

  • Flack

    Artem Chertov, не понял про консоль. Извините.

  • Artem Chertov

    Flack, прошу прощения, что не уточнил!
    FireFox JavaScript Console,
    Opera Error Console,
    Mozilla JavaScript Console и пр.
    Кстати сообщение не лично Вам, всем. Это у меня, как-то опечаталось :)

  • Flack

    Artem Chertov, вы серьезно считаете, что кто-то использует JS-консоли для проверки css? Любой мало-мальский профи легко отделит мухи от котлет, а style.css от ie.css. Тем более валидность css трудно соблюсти.
    Тот же fieldset:0px solid transparent, необходимый для седьмой Оперы.

  • Artem Chertov

    Flack > валидность css трудно соблюсти
    Я так не считаю.

    Flack > вы серьезно считаете, что кто-то использует JS-консоли для проверки css?
    Как минимум, я имел в виду стороннюю критику проекта, т.е. в работе уважающего себя специалиста комар носа не подточит. :)

  • Flack

    Artem Chertov, не обижайтесь, но вы идеалист. Пример обоснования я привел комментарием раньше.

  • Artem Chertov

    Flack, В общем, так и есть. :)
    P.S.: Никогда ни на кого не обижаюсь.
    P.P.S.: Приятно было пообщаться… :)

  • Flack

    Artem Chertov, аналогично. Заходите еще :)

  • Vitaly Harisov

    Если выносить правила для MSIE в отдельный файл, то основной CSS должен быть валиден и не должен вываливать ошибки на Error Console в FF. Её действительно удобно использовать для уведомления об ошибках в CSS (а не online validator ;).

  • FataL

    Иногда, когда надо быстро, пользую вот это:
    width: 100%; /* для всех */
    width: 99%; / IE 7 /
    _width: 98%; /
    сброс для IE 6 и древнее */

  • FataL

    Ужас! Мой комментарий изуродовался. Попробую ещё раз:
    width: 100%;

    *width: 99%;
    _width: 98%;

  • Vitaly Harisov

    Это невалидно.

  • andtim

    Для IE 7 еще использую *+html.

  • andtim

    Для IE 5 мона также попробовать такую комбинацию:
    margin-bottom/* */: -3px;

  • mihdan

    Строгий ответ – conditional comments

Оставить комментарий