Целевой IE9 Только через CSS
Просто интересно, учитывая эти IE хаки в моей сумке трюков
"\9" - for IE8 and below.
"*" - for IE7 and below.
"_" - for IE6.
то есть. таких как
body {
border:2px solid blue;
border:2px solid yellow \9;
*border:2px solid green;
_border:2px solid orange;
}
Есть ли у кого-то такой взлом для IE9? Т.е. я пытаюсь настроить IE9 только через CSS?
Ответы
Ответ 1
Я предлагаю использовать condcoms для подачи файла CSS CSS IE9 или иметь условный класс html, похожий на:
<!--[if lt IE 7]> <html lang="en-us" class="no-js ie6"> <![endif]-->
<!--[if IE 7]> <html lang="en-us" class="no-js ie7"> <![endif]-->
<!--[if IE 8]> <html lang="en-us" class="no-js ie8"> <![endif]-->
<!--[if gt IE 8]><!--> <html lang="en-us" class="no-js"> <!--<![endif]-->
Ответ 2
Ужасно, но он должен работать:
body {
border:2px solid blue;
border:2px solid yellow \9;
*border:2px solid green;
_border:2px solid orange;
}
body:nth-child(n) {border:1px solid purple \9; /*Should target IE9 only - not fully tested.*/}
Ответ 3
На этом адресе: http://www.impressivewebs.com/ie10-css-hacks/
Я нашел медиа-запрос, специфичный только для IE10 (и ниже):
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
/* IE10-specific styles go here */
}
Ответ 4
Как отмечалось в некоторых комментариях, бывают случаи, когда условный HTML не будет работать для конкретной ситуации, особенно если вы не можете изменить сам код страницы. Итак, обходной путь:
Базовый стиль
.test{color:red;}
Обозначения, зависящие от браузера
IE < 8: html >/**/body .test { color: green; }
IE 9: :root .test{color:green \ ;}
IE 8 и 9: .test{color:green \ ;}
IE 9 и Opera :root .test {color: green\0;}
Примечания
Вышеуказанное не будет работать для background
или font-*
, а любые тэги \0
или \9
обычно нестабильны. Полный список хакеров CSS см. В http://mynthon.net/howto/-/webdev/CSS-big-list-of-css-hacks.txt.
Ответ 5
IE9 соответствует стандартам. Вам не нужно его взломать.
Кроме того, вы должны использовать условные комментарии IE для загрузки разных стилей. Для IE 9 вы бы сделали:
<!--[if IE 9]>
<!-- conditional content goes here -->
<![endif]-->