Целевой IE9 только через CSS - PullRequest
22 голосов
/ 11 июля 2011

Просто интересно, учитывая эти взломы 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?

Ответы [ 5 ]

42 голосов
/ 24 марта 2012

Ужасно, но должно работать:

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.*/}
29 голосов
/ 11 июля 2011

Я предлагаю использовать condcoms для подачи файла 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]--> 
4 голосов
/ 28 мая 2013

По этому адресу: 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 голосов
/ 11 июля 2011

IE9 соответствует стандартам.Вам не нужно его взламывать.

Кроме того, вы должны использовать условные комментарии IE для загрузки различных стилей.Для IE 9 вы должны сделать:

<!--[if IE 9]>
    <!-- conditional content goes here -->
<![endif]-->
3 голосов
/ 24 сентября 2015

Как отмечалось в некоторых комментариях, бывают ситуации, когда условный HTML не будет работать для конкретной ситуации, особенно если вы не можете изменить сам код страницы. Итак, вот обходной путь:

Базовый стиль

.test{color:red;}

Специфичные для браузера переопределения

IE <8: <code>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.

...