2010-08-22 19 views

risposta

29

Nei browser fino al IE9, questo viene fatto attraverso conditional comments.

<!--[if IE]> 
<style type="text/css"> 
    IE specific CSS rules go here 
</style> 
<![endif]--> 
+17

questo non funzionerà per IE10 e versioni successive. –

+2

questa non è più la risposta – abzarak

+1

@abzarak quindi fornire un nuovo, corretto che l'OP può contrassegnare come accettato invece di questo uno –

22

Un buon modo per evitare di caricare più file CSS o di avere CSS in linea è a portata di mano una classe per il tag body a seconda della versione di Internet Explorer. Se avete solo bisogno di hack Per esempio, si può fare qualcosa di simile, ma può essere esteso per essere la versione specifica:

<!--[if IE ]><body class="ie"><![endif]--> 
<!--[if !IE]>--><body><!--<![endif]--> 

Ora nel codice css, si può semplicemente fare:

.ie .abc { 
    position:absolute; 
    left:30; 
    top:-10; 
} 

Ciò mantiene anche i file CSS validi, in quanto non è necessario utilizzare gli hacker CSS sporchi (e non validi).

+0

fai questi se lavori con 10? – Jon

+2

Jon: IE10 non supporta più i commenti condizionali. D'altra parte non dovresti averne più bisogno. – DASPRiD

18

Un approccio veloce è quello di utilizzare il seguente in base alle vale a dire che si desidera mettere a fuoco (controllare i commenti), all'interno del vostro file CSS (dove margin-top, impostare qualunque css attributo gradite):

margin-top: 10px\9; /*It will apply to all ie from 8 and below */ 
*margin-top: 10px; /*It will apply to ie 7 and below */ 
_margin-top: 10px; /*It will apply to ie 6 and below*/ 

Un approccio migliore sarebbe controllare l'agente utente o un condizionale se, al fine di evitare il caricamento di CSS non necessari in altri browser.

+3

\ 9 funziona in 9 e 10 – Jon

+0

Che dire di IE11? Ho provato margin-top: 10px \ 9, margin-top: 10px \ 10 e margin-top: 10px \ 11 senza successo – Guillaume

+3

Prova my ie10 + hack _: - ms-fullscreen,: root .selector {margin-top: 10px; } e my ie11 + hack: _: - ms-lang (x), .selector {margin-top: 10px; } Dovrebbero aiutarti. Provali qui: http://browserstrangeness.bitbucket.org/css_hacks.html#msie –

5

Preferisco utilizzare un file separato per le regole, come descritto in precedenza.

<!--[if IE]><link rel="stylesheet" type="text/css" href="ie-style.css"/><![endif]--> 

e al suo interno è possibile impostare le regole per le diverse versioni di IE di utilizzare questo:

.abc {...} /* ALL MSIE */ 
*html *.abc {...} /* MSIE 6 */ 
*:first-child+html .abc {...} /* MSIE 7 */ 
Problemi correlati