CSS хаки

Часто при вёрстке мы сталкиваемся с проблемой кроссбраузерности. Конечно, многие могут сказать «хаки – зло», я абсолютно согласен, но иногда приходиться использовать хаки, в статье я решил выложить известные мне хаки для IE, Opera, Firefox, Safari и т.д. Для тех кто не в курсе, хак – это способ подачи css только определённому браузеру (или браузерам), к примеру только Internet Explorer или Firefox. Зачем нужны хаки? Всё просто, все браузеры воспринимают css по своему, зачастую отступая от стандартов (особенно этим нас «радует» IE), в итоге, пользователь может увидеть совсем не тот сайт, каким его задумывал создатель.

Conditional comments

Разработчики IE прекрасно знают о недостатках своего творения и поэтому реализован, уже широко известный всем Conditional comments (условные комментарии), это не хак, но в принципе, входит в рамки поста и очень удобен, поэтому он в этом списке. Работают условные комментарии в IE 5, 6, 7, 8.

<!--[if IE]> Только для Internet Explorer <![endif]-->
<!--[if IE 5]> Только для IE 5 <![endif]-->
<!--[if IE 5.0]> Только для IE 5.0 <![endif]-->
<!--[if IE 5.5]> Только для IE 5.5 <![endif]-->
<!--[if IE 6]> Только для IE 6 <![endif]-->
<!--[if IE 7]> Только для IE 7 <![endif]-->
<!--[if IE 8]> Только для IE 8 <![endif]-->

А теперь, собственно, к самим хакам.

Хак для IE 6

Работает только при наличии !DOCTYPE. При quirks-mode, работает в IE 6, 7:

* html селектор{свойство:значение}

Хаки для IE 7

Как и предыдущий работают только при наличии доктайп:

*+html селектор{свойство:значение}
*:first-child+html селектор{свойство:значение}

Теперь хаки, работающие без доктайп.

Хаки для IE 6

селектор{_свойство:значение}
селектор{-свойство:значение}
селектор {свойство:значение !important;свойство:значение;}
* html селектор {свойство:значение;\\значение:default}

Хаки для IE 7

-,селектор{свойство:значение;}
селектор {свойство:значение !important!;свойство:значение;}

Хак для IE 8

html[xmlns*=""] селектор {свойство:значение\9;]свойство:default}

Хаки для IE 6 и IE 7

.селектор{*свойство:значение}
селектор{//свойство:значение}
селектор{свойство:значение!ie}
селектор {]свойство:значение}

Хак для IE 6, IE 7, IE 8

селектор {свойство:значение\9}

Хак для IE 6, IE7, Safari

html*селектор{свойство:значение}

Хак для Safari 3

html:root*селектор{свойство:значение}

Хак для Safari

селектор:not(:root:root) {свойство:значение}

Хак для Firefox 2 и Firefox 3

@-moz-document url-prefix(){.селектор{свойство:значение}}

Хак для Firefox 2, Firefox 3, IE 7

x:-moz-any-link,селектор{свойство:значение}

Хак для Safari, Firefox, Chrome

@media all and (min-width:0){селектор {свойство:значение}}

Хак для Safari, Firefox, Chrome, Opera

html:root селектор {свойство:значение}

Хак для Safari, Chrome

@media screen and (-webkit-min-device-pixel-ratio:0){селектор  {свойство:значение}}

Хак для Firefox 3 и IE7

x:-moz-any-link,x:default,селектор{свойство:значение}

Хаки для Opera

*|html[xmlns*=""] селектор {свойство:значение}
@media not all and (-webkit-min-device-pixel-ratio){селектор  {свойство:значение}}

Хак для Opera от 10.xx до 10.50 (не включительно)

@media (0) {селектор{свойство:значение;}}

Хак для Opera от 9.27 до 10.50 (не включительно)

@media all and (resolution = 0dpi) {селектор{свойство:значение;}}

Хак для Opera от 10.xx до 10.50 (включительно)

@media all, () {селектор{свойство:значение;}}

Хак для Opera 10.50

@media all, {селектор{свойство:значение;}}

Хак для Opera 9.5 и IE 7

noindex:-o-prefocus,селектор{свойство:значение}

Хак для Opera, IE 7, IE8

html[xmlns*=""] селектор {свойство:значение}

Хак для Firefox 2, Firefox 3, Safari 3, Chrome 2, Opera 9.5

html:root селектор{свойство:значение}

Хак для Safari 3, Safari 4, Chrome 2

@media screen and  (-webkit-min-device-pixel-ratio:0) {body:first-of-type селектор{свойство:значение}}

Хак для Safari, FireFox, Chrome, Opera

:root *> селектор {свойство:значение}

Хаки для Safari 3, Chrome 2, Opera 9.5

body:first-of-type селектор{свойство:значение}
@media all and (min-width:0){селектор{свойство:значение}}

Хак для Firefox 2, Firefox 3, Safari 3 и Chrome 2

html:not([lang*=""]):not(:only-child)  .селектор{свойство:значение}

Хак для Safari, FireFox, Chrome, Opera, IE8

html>/**/body селектор {свойство:значение}

Хаки для всех браузеров кроме IE 6

html>body селектор{свойство:значение}
head+body селектор{свойство:значение}
html:first-child селектор{свойство:значение}

Хаки для всех браузеров кроме IE 6 и IE 7

html>/**/body селектор{свойство:значение}

Хаки для всех браузеров кроме IE 6, IE 7, IE 8

*|html .селектор{свойство:значение}
html:not([lang*=""]) селектор{свойство:значение}

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

Спонсором этого поста Seo блог, который рассказывает о том, что такое продвижение и раскрутка сайта.

Кстати, вы можете стать спонсором следующей статьи, для этого достаточно купить постовой и вы получите ссылку без всяких nofollow и noindex с нужным вам анкором.

Google Buzz Vkontakte Facebook Twitter Ваау! News2.ru SMI2 Google Bookmarks Digg I.ua Закладки Yandex Linkstore Myscoop Webmarks Ruspace Linkomatic Reddit delicious Technorati Slashdot Yahoo My Web БобрДобр.ru Memori.ru МоёМесто.ru Mister Wong
Запись опубликована в рубрике Программинг с тэгами , , Оставить комментарий или trackback:Trackback URL.

Один комментарий

  1. Опубликован 21 июня 2010 в 15:58 | Прямая ссылка

    Читаемость страницы плохая. Из-за дизайна [code]

    [Ответить]

    Grassmester Reply:

    Давно исправил, думаю сменю дизайн, довольно скоро.

    [Ответить]

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

Ваш e-mail никогда не будет опубликован или передан третьим лицам. Обязательные поля отмечены *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

  • Рубрики

  • Облако тегов

  • Популярные записи

  • Пузомерки