CSS хакиСписок CSS хаков для игнорирования того или иного браузера. Кто не в курсе напомню что определенные браузеры иногда ведут себя не так как хотелось бы :( , поэтому приходиться скрывать некоторые стили от них или наоборот задавать конкретные правила для этих браузеров. Для этого можно использовать специальные команды.

Internet Explorer 6

* html div {...} /*только для IE6*/
div { _color: red } /*только для IE6*/
div+span {...} /* IE6 и ниже проигнорирует это правило */
div>span {...} /* IE6 и ниже проигнорирует это правило */

Internet Explorer 7

*:first-child+html div {...} /*только для IE7*/
*+html div {...} /*только для IE7*/
div>/**/span {...} /* IE7 и ниже проигнорирет это правило */

Opera

html:first-child {...} /*только для Opera*/
@media all and (min-width: 0) {
    div span { background: #FF0}
} /*только для Opera*/

Firefox

html:root div {...} /*только для Firefox*/
div, x:-moz-any-link {...} /*только для Firefox (однако у меня и в IE7 прокатило)*/

Safari

html[xmlns*=""] body:last-child {...}

15 комментариев к статье «CSS хаки»:

  1. TheBits:

    Этими селекторами опасно пользоваться!

  2. Мало. Здесь больше. http://centricle.com/ref/css/filters/
    Но всё равно не рекомендую ими пользоваться. Валидный и везде работающий CSS можно писать, если знать ньюансы и писать правильно.

  3. Alex:

    Мне в основном приходится пользоватся хаком для IE6 (* html). Уровень знаний пока не позволяет решать как-то по другому. Хотя может просто лень разбиратся. А в чем собственно опасность использования?

  4. Спасибо за заметку, сразу же пригодилось и кое-что новое для себя нашёл. Вышла незадача, Safari 3.0.4 под Win сьел вот это правило: html:root div

    Это проблема, если присмотрется даже с расширенной таблицей правил вот тут http://centricle.com/ref/css/filters/, мне его не обмануть :(

  5. @media all and (min-width: 0) {
    div span { background: #FF0}
    } /*только для Opera*/

    так же видит Safari 3

  6. html:root div {…} /*только для Firefox*/

    также видит safari3

  7. Кстати, хаки для IE7 не работают если в начале документа не указать !DOCTYPE.

  8. 2 Alex – а опасность собственно в том что эти хаки однажды могут прикрыть и все ваши труды пойдут прахом, т.е. вёрстка развалится. Точнее даже их не прикроют, а однажды они могут проканать в новых версиях браузеров или наложится друг на друга.

  9. Grin:

    еще нормальная подборка хаков
    http://vremenno.net/html-css/css-hacks/

  10. хм. А что тогда делать, если ксс нормальный. Валидатор ксс не ругается, а браузеры всё равно на 1 пиксель сдвигают. В ие так, в фаерфокс на 1 пикс ниже, а в опере левее и т.д. =) Иногда такие моменты только благодаря хакам и решаются. Или посоветуете ещё что нибудь?

  11. Основной недостаток хаков что с выходом более новой версии они могут быть отфиксины. Вот в этой статье более новые примеры с учетом последних версий браузеров.
    http://zodios.net/htmlcss/hacks.html

  12. Alex:

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

  13. Вот здесь я специально собрал проверенную отличную подборку css хаков. Надеюсь вам поможет: css хаки. В том числе я нашел (написал) хаки для хрома и ie8.

  14. Спасибо за подборку, помогло в некоторых случаях, хотя стараюсь не использовать хаки, но бывают случаи, когда уже ничего не помогает.

  15. Спасибо за статью!
    Правда, хаки редко использую. Но иногда – это необходимость.
    А в основном делаю условные комментарии для ИЕ7. Во всех остальных браузерах код отображается нормально, как и нужно.

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