Diseñar en CSS para Firefox, IE6, IE7,…

En el proceso de diseño de nuestras páginas web nos hemos encontrado con un problema, que imagino han tenido alguna vez  todos los diseñadores: las páginas y estilos CSS no se muestran de igual forma en Firefox, Internet Explorer 6, Internet Explorer 7, u otros navegadores no tan populares. Lo que en Firefox se vicualiza como nosotros hemos planeado suele aparecer bastante descolocado en cualquier versión de Internet Explorer existentes hasta el momento.

Las causas de estas diferencias son muchas y muy variadas, pero saber cuales son no es el objetivo de este post (aunque éste es un tema importante), sino más bien, cómo poder resolverlas de una forma más que eficiente. Así que para ello serán indicados una serie de hacks (trucos) o formas de implementar nuestro código CSS de forma correcta.

1- En el código HTML deberemos incluir las siguientes entencias, entre las etiquetas <head></head>, evidentemente:

<!--[if lt IE 6]-->
<link rel="stylesheet" type="text/css" src="css_ie6.css">
<![endif]-->
<!--[if IE 7]-->
<link rel="stylesheet" type="text/css" src="css_ie7.css">
<![endif]-->

De esta forma, Firefox y todos los demás navegadores excepto Internet Explorer leerían la hoja de estilos general. Mientras que El IE se comportaría con las hojas de estilo que hemos creado aposta para él.

2- Escribiendo # delante de la propiedad css , solo se aplicará a a Internet Explorer, y si escribimos un _ antes de a propiedad, solo se aplicará a Internet Explorer 6.

.miClase{
    width: 15px; /* Para todos los navegadores */
    #width: 20px; /* Para IE */
    _width: 25px; /* Para IE 6 */
}

3- Finalmente, también podemos utilizar formas válidas de definir los elementos del CSS pero que solo entienden algunos navegadores. De esta forma podemos añadir pequeños arreglos en un mismo archivo css sin que por ello nuestro código deje de validar.

#miDiv { Código para todos los navegadores }
* html #miDiv { Código para IE 6 }
*:first-child+#miDiv { Código para IE 7 }
#miDiv { Código para IE 8\9 } -- #miDiv { float: right\9; }
html>body #miDiv { Código para FF }

4- Y un resumen de más cosillas (otros navegadores incluídos) entremezcladas para acabar de liarla más aún.

* html #uno { color: red } /* IE 6 y anteriores */
*:first-child+html #dos { color: red } /* IE 7 y anteriores */
html>body #tres { color: red } /* IE 7 y navegadores modernos */
html>/**/body #cuatro { color: red } /* Navegadores modernos (IE 7 no) */
html:first-child #cinco { color: red } /* Opera 9.27 y anteriores */
html[xmlns*=""] body:last-child #seis { color: red } /* Safari */
body:nth-of-type(1) #siete { color: red } /*safari 3+, chrome 1+, opera9+, ff 3.5+ */
body:first-of-type #ocho { color: red } /* safari 3+, chrome 1+, opera9+, ff 3.5+ */
@media screen and (-webkit-min-device-pixel-ratio:0) {
#diez { background: #FFDECE; border: 2px solid #ff0000 } /* saf3, chrome1+ */
}
Anuncios

~ por inforlandia en abril 16, 2009.

Una respuesta to “Diseñar en CSS para Firefox, IE6, IE7,…”

  1. Muy útil esta ayuda para la creación de CSS pensando en navegadores. Solo abría que agregar el IE 8 que es otra piedrita en el zapato en visualización.

    Gracias.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s

 
A %d blogueros les gusta esto: