CSS xаки и для различных браузеров
Если перед свойством в css поставить подчеркивание “_”, или дефис “-”, то эти свойства будут восприниматься только IE версии 6 и ниже:
1 2 |
.style {_background:#F00;} \\width:100px; - видят только ie 5.0 и ie 5.5 (неактуально) |
Звездочка . Работает для IE7 и ниже:
1 2 |
p { background:red; /* Применимо ко всем браузерам */ *background: green; /* Применимо к IE6 и ниже */ } |
1 2 3 4 5 |
#hack{ color:green; /* IE 5.01 */ color/**/:blue; /* IE 5.5 */ c\olor red; /* IE 6 не работает перед буквами a, b, c, d, e, f */ } |
1 |
* html .ie6 {color:red;} /* Хак только для IE6 */ |
IE6 и ниже проигнорирует эти правила:
1 2 |
div>span {} div+span {} |
IE min-width & max-width : максимальная и минимальная ширина блока:
1 2 3 4 5 |
#element { min-width:780px; max-width:1260px; width expression(document.body.clientWidth < 780? "780px" : document.body.clientWidth > 1260? "1260px" : "auto"); } |
Box Model . Хак используется для того, чтобы справиться с глюком эксплорера, в котором border и padding включаются в ширину элемента:
1 2 3 4 |
padding:4em; border:1em solid red; width:30em; width/**/:/**/ 25em; |
Min-height хак от Дастина Диаза:
1 2 3 4 5 |
selector { min-height:500px; height:auto !important; height:500px; } |
Internet Explorer 7.0 и ниже
Не все хаки для IE7 работают если в начале документа не указать !DOCTYPE.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
*+html .style { background: #F00;} html>body .style {*background: #F00;} *:first-child+html {} * html {} /* IE 7 и ниже */ *:first-child+html {} /* IE 7 только */ html>body {} /* IE 7 и нормальные браузеры */ html>/**/body {} /* Только нормальные браузеры (не IE 7) */ >body {} /* выбирает элемент body только в IE7 */ html* {} /* выделяет все элементы внутри элемента html. Только для IE7 и ниже. */ //width:100px; - так написаное свойство проигнорируют все браузеры кроме ie 7.0 и меньше .ie7b {#color:#00FF00;} /* Хак только для IE7,6 */ |
a:link:visited, a:visited:link В соответствии со стандартами, псевдотеги :link и :visited взаимно исключаемы,
то есть :link означает непосещенную ссылку. Тем не менее, IE 7 и ниже проигнорируют эти псевдо-классы, если
какой-нибудь другой появится ниже в том же селекторе.
1 2 |
a:link:visited, a:visited:link {} a:link:visited, a:visited:link {} /* выбирает элемент a в IE7 и ниже */ |
Условные комментарии
Условие может быть таким: IE – для любой версии IE
lt IE v – (less than) для всех браузеров IE, версия которых меньше чем v
lte IE v – (less than or equal) для всех браузеров IE, версия которых меньше чем v, или такая же
gte IE v – (greater than or equal) – для IE, версия которых больше или равна v
gt IE v – (greater than) – для IE, версия которых больше v.
Для всех версий IE:
1 2 |
<!--[if IE]> <link rel="stylesheet" href="css/cssf-ie.css" type="text/css" media="screen" /><![endif]--> |
Для 7-й версии:
1 2 |
<!--[if IE 7]> <link rel="stylesheet" href="css/cssf-ie7.css" type="text/css" media="screen" /><![endif]--> |
Для 5.01, 5.5 и 6.0:
1 2 |
<!--[if lte IE 6]> <link rel="stylesheet" href="css/cssf-ie6.css" type="text/css" media="screen" /><![endif]--> |
CSS-хаки для браузера Opera
1 2 3 4 5 6 7 8 9 10 11 12 13 |
@media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0) { .style {background: #F00;} /* только для Opera */ } html:first-child {} /* только для Opera */ html:first-child .style { background: #F00; /* только для Opera < 9.5 */ } |
Можно создать файл opera.css и подключить его в head секции документа:
1 2 3 |
<head> <link rel="stylesheet" href="css/opera.css" type="opera/css" media="screen" /> </head> |
CSS хаки для FireFox:
1 2 3 |
html:first-child .class { color: #368EF1; } /* для FireFox */ @-moz-document url-prefix(){body { color: #368EF1; }} |
CSS-хак для Safari
1 |
body:first-of-type #element { color: red; } |
CSS-хак для Konqueror
1 |
html:not(:nth-child(1)) #element { color: red; } |
Для нескольких браузеров:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
.class, x:-moz-any-link { color: #368EF1; } /* для FireFox, но так же работает в Internet Explorer 7 */ @media all and (min-width: 0) {.safariOperaChrome {color:#FF00FF;}} /* Хак только для Safari, Opera, Google Chrome*/ @media all and (min-width: 0) {div span { background: #FF0}} /*только для Opera* (так же видит Safari 3 и Google Chrome) / html:not([lang*=""]):not(:only-child) .ffSafariChrome {color:#990000;} /* Хак только для IE7, FireFox */html:root div {…} /* для Firefox (также видит safari3) */ html:root .ffSafariChrome {color:#660066;} /* Хак только для Safari, FireFox, Google Chrome */ body:first-of-type .operaChromeSafari {color:orange;} /* Хак только для Safari, Opera, Google Chrome */ html>/**/body {} /* Все современные браузеры, кроме IE 7 */ /*\*//*/selector{property:value;}/**/ /* MacIE */ |
Надеюсь никто не обидиться за этот маленький копипаст полезных хаков.
Спасибо за полезный код, как раз искал, как задать CSS только для IE7.