Hack IE CSS

Publicado: 27/02/2010
Quisiera saber si no existe algún diseñador que cuando maqueto su sitio y después de mirarlo con amor no se pregunto ¿Qué onda esto en IE 6,7 y 8? Y de golpe, se dio cuenta de que se veía todo MAL!!!. Seguro que ese diseñador no existe ni va a existir. Gracias Bill!

Cuestión que ahora les voy a comentar como definir propiedades exclusivas para IE.
Si bien con JavaScript, ASP, PHP y .Net se pueden detectar todos los navegadores y sus versiones (entre tantas otras propiedades). Siempre es recomendable usar el lenguaje creado para esto CSS.

CSS nos proporciona dos maneras:
1 - Una es un hack, pero que a la hora de validar la hoja de estilos css nos va a generar errores. Pero funciona a la perfección.

2- Y la otra, que a mi entender es la mas apropiada es especificar dentro de un comentario HTML que si nos topamos con Internet Explorer carguemos una hoja de estilo, especifica con los fixs exclusivos para IE.

La primer forma es la siguiente:
  1. .miClase{
  2. display:inline-block; /*Para todos*/
  3. *display:inline; /*Solo para IE 6*/
  4. _display:block; /*Para cualquier version de IE*/
  5. }

La siguiente se debe especificar luego de que especificamos la hoja de estilos principal, si o si!. La idea básica es ejecutar lo que sea, no solo CSS dentro del comentario.
  1. <!--[if IE]>
  2. <link href="css/fixIE.css" rel="stylesheet" type="text/css" />
  3. <![endif]-->

Dentro de los corchetes podemos preguntar:
- Si es cualquier version de Internet Explorer --> [if IE]
- Si es Internet Explorer 6 --> [if IE6]
- Si es una versión anterior a Internet Explorer X --> [if lt IE X]
- Si es esa versión o una anterior a Internet Explorer X --> [if lte IE X]
- Si es una versión posterior a Internet Explorer X --> [if gt IE X]
- Si es esa versión o una posterior a Internet Explorer X --> [if gte IE X]

También podemos preguntar si no es IE, de la siguiente manera:
- Si no Internet Explorer --> [if !IE]
- Si no Internet Explorer 6 --> [if !IE6], etc...

Para terminar este post les dejo también un hack que nos recomendó Microsoft cuando lanzo Internet Explorer 8, en cual nos decía como hacer que IE8 se comporte como IE7.
Vaya a saber uno porque? Quizás porque no quieren que respetemos los estándares de la W3C ?
Pero bueno sirve para no renegar con otra porquería mas.

Aquí les va:
  1. <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
Como siempre se agradecen sugerencias y consultas.
Lucas Ramos

Dejanos tu comentario!


Comentarios de este post



www.pcbegin.tk dice...
Publicado: 06/10/2011 - 09:26:50

_display:block; /*Para cualquier version de IE*/ no funciona para IE8

anonimo dice...
Publicado: 20/04/2012 - 16:29:17

ok