2009-02-20 8 views
6

Próbowałem warunkowego IE w pliku CSS, ale nie wydaje się działać. Czy istnieje konstrukt dla CSS, dzięki czemu można powiedzieć, aby użyć tego koloru tła, jeśli przeglądarka jest IE? Nie mogłem też znaleźć niczego na temat, jeśli w innym przypadku istnieje, czy istnieje? Czy ktoś może podać przykład.Czy umieszczasz warunkowe IE w pliku css lub w pliku HTML?

Odpowiedz

17

Warunek IE jest wprowadzany w kodzie HTML i powinien zostać użyty do dołączenia dodatkowego pliku CSS, który nadpisze CSS w razie potrzeby dla hacków IE.


Przykład:

<head> 
    <style type="text/css"> 
    @import url(/styles.css); 
    </style> 
    <!--[if lte IE 6]> 
     <link rel="stylesheet" type="text/css" href="ie6.css" /> 
    <![endif]--> 
</head> 
11

Pobrałem pamięć z jQuery i używam formatowania warunkowego do tworzenia elementów kontenera

<body class="center"> 
<!--[if IE 5]><div id="ie5" class="ie"><![endif]--> 
<!--[if IE 6]><div id="ie6" class="ie"><![endif]--> 
<!--[if IE 7]><div id="ie7" class="ie"><![endif]--> 
<!--[if IE 8]><div id="ie8" class="ie"><![endif]--> 
    <div class="site text-left"> 

    </div> 
<!--[if IE]></div><![endif]--> 
</body> 

wtedy mogę umieścić informacje warunkowego w css jak taki

.site { width:500px; } 
.ie .site { width:400px; } 
#ie5 .site { width:300px; } 
+0

Używam tej sztuczki, ja. Dzięki temu twoje pliki CSS stają się bardziej uporządkowane * i * nie musisz martwić się o preselekcję selektora. –

+0

Interesujące podejście, nie widziałem tego wcześniej. Osobiście wolałbym zachować porządek niż mój CSS. Ale każdemu z nich! –

+0

+1 za sprytną sztuczkę. – Ishmael

3

nie ma takiej warunkowe w CSS, ale można użyć „Holly hack” jeśli różnice pomiędzy różnymi wersjami IE aren „t znaczące:

div.class { /* whatever */ } 
* html div.class { /* IE-only */ } 
+0

AFAIK, usunęli '* html' z IE8. – bendewey

+0

Jeszcze lepiej. Ta sztuczka jest tak naprawdę potrzebna w IE <= 7. – greyfade

1

polecam użyć czegoś podobnego do rozwiązania zaproponowanego przez bendewey, ale iść na zajęcia warunkowych całym tagu hTML zamiast. O ile wiem, to po raz pierwszy wspomniano w Paula irlandzki Blog (http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/)

<!--[if lt IE 7 ]> <html class="ie6"> <![endif]--> 
<!--[if IE 7 ]> <html class="ie7"> <![endif]--> 
<!--[if IE 8 ]> <html class="ie8"> <![endif]--> 
<!--[if IE 9 ]> <html class="ie9"> <![endif]--> 
<!--[if (gt IE 9)|!(IE)]><!--> <html class=""> <!--<![endif]--> 

a następnie w css użyć:

.box {background: blue;} 
.ie7 .box {background: green;} 

ten ma kilka zalet w porównaniu do rozwiązania z wykorzystaniem dodatkowego div. Aby uzyskać szczegółowe informacje, sprawdź post powyżej.