2010-08-22 9 views

Respuesta

29

En los navegadores hasta e incluyendo IE9, esto se hace a través conditional comments.

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

Esto no funcionará para IE10 y posteriores. –

+2

esto ya no es la respuesta – abzarak

+1

@abzarak luego proporcione uno nuevo, correcto que el OP puede marcar como aceptado en lugar de este –

22

Una buena manera de evitar cargar varios archivos CSS o tener CSS en línea es a mano una clase a la etiqueta del cuerpo dependiendo de la versión de Internet Explorer. Si sólo necesita hacks general, es decir, se puede hacer algo como esto, pero puede extenderse a ser la versión específica:

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

Ahora en su código CSS, sólo tiene que hacer:

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

Esto también mantiene sus archivos CSS válidos, ya que no tiene que usar hacks CSS sucios (y no válidos).

+0

Haga esto si trabaja con 10? – Jon

+2

Jon: IE10 ya no admite comentarios condicionales. Por otro lado, tampoco deberías necesitarlos. – DASPRiD

18

Un enfoque rápido es utilizar el siguiente de acuerdo a decir que desea enfocar (verifique en los comentarios), dentro de sus archivos CSS (donde margin-top, establecer cualquier atributo CSS se quiere):

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 mejor enfoque sería verificar el agente del usuario o un condicional si, con el fin de evitar la carga de CSS innecesarios en otros navegadores.

+3

\ 9 funciona en 9 y 10 – Jon

+0

¿Qué pasa con IE11? Probé margin-top: 10px \ 9, margin-top: 10px \ 10 y margin-top: 10px \ 11 sin éxito – Guillaume

+3

Pruebe my ie10 + hack _: - ms-fullscreen,: root .selector {margin-top: 10px; } y mi ie11 + hack: _: - ms-lang (x), .selector {margin-top: 10px; } Deberían ayudarte. Pruébalos aquí: http://browserstrangeness.bitbucket.org/css_hacks.html#msie –

5

Prefiero usar un archivo separado para las reglas, como se describió anteriormente.

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

y en su interior se puede configurar reglas para diferentes versiones de esto es el uso de este:

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