CSS | Guillermo Carvajal | Martes 18 Septiembre, 2007

Diseñar en CSS para Firefox, IE6 e IE7




En el diseño del futuro nuevo tema de este blog nos hemos encontrado con un problema, que imagino tienen todos los diseñadores: las páginas y estilos CSS no se muestran de igual forma en Firefox, Internet Explorer 6 e Internet Explorer 7. Lo que en Firefox queda como la seda suele aparecer bastante descolocado en Internet Explorer 6 y con algunas diferencias en Internet Explorer 7.

Buscando una solución nos hemos encontrado con un excelente artículo titulado Two CSS Hacks for identical pages on FF, IE6 & IE7. Hemos aplicado las soluciones propuestas en él y han funcionado perfectamente. No se si son la manera más ortodoxa de hacerlo, pero funcionan. Consisten en lo siguiente:

1. Realizar el diseño para Firefox

2. Comprobar los fallos que el diseño muestra en IE6. Identificar los selectores que presentan el problema y duplicarlos, anteponiendo a la copia el selector *html y aplicando los cambios requeridos, de la siguiente manera:

#MyDiv {margin: 10px 10px 10px 10px;}

/* IE6 Only */
* html #MyDiv {margin : 5px 5px 5px 5px;}

De ese modo, mientras Firefox leera el primer #MyDiv, IE6 sólo leerá el segundo.

3. Hacer lo mismo con IE7. Volver a duplicar los selectores en conflicto y añadir *:first-child+html a los duplicados:

#MyDiv {margin : 10px 10px 10px 10px;}

/* IE6 Only */
* html #MyDiv {margin : 5px 5px 5px 5px;}

/* IE7 Only */
*:first-child+html #MyDiv {margin : 2px 2px 2px 2px;}

Así, IE7 sólo leerá el último selector.

Con esta técnica podemos diseñar hojas de estilo únicas para los tres navegadores, sin complicarnos con otras técnicas más dificiles para los que no somos expertos en la materia.





[Tags: + + ][votar]
[Comparte este post:]
  • E-mail this story to a friend!
  • Twitter
  • del.icio.us
  • Bitacoras.com
  • Facebook
  • Google Bookmarks
  • Live
  • Meneame
  • MisterWong
  • Netvibes
  • Print this article!


2 trackbacks/pingbacks

  1. Pingback: CSS para todos los navegadores » blogpocket 7.0 el 5 Enero, 2008
  2. Pingback: Eliminar los hacks para IE6 | La brujula verde el 16 Enero, 2008

La Conversación {16 comentarios}

  1. aslexande florez 11 Octubre, 07 @ 8:00 pm

    hola..
    alfin encontre un documento
    bueno para solucionar mi problema
    donde aho ese cambio en el estilo o que.
    por ayuda:::…

  2. Iván 31 Octubre, 07 @ 5:04 pm

    Excelente recurso, me habeis quitado horas de sufrimiento.

  3. Dario Gutierrez 18 Enero, 08 @ 1:42 am

    Interesante, me va hacer de gran ayuda, tengo unos problemas con algunos atributos y selectores del css. Gracias. Saludos desde Cancún Mexico

  4. Victor 26 Enero, 08 @ 1:19 am

    Saludos, excelente!!! me estaba matando la cabeza haciendo modificaciones aqui y alla para que encajara todo en los 3 navegadores, casi todo funciona muy bien entre Firefox e IE7, pero lo que es IE6 si que es un dolor de cabeza y aun tiene muchisimos usuarios.

  5. Zafanor 28 Febrero, 08 @ 4:58 pm

    Y para Opera…

  6. Miguel Fuentes Calderon 23 Abril, 08 @ 6:01 pm

    muy bueno execelente funciona de maravillas esta forma de trabajar y no tener problemas con los navegadores IE deberia desaparecer no cumple con los estandares de los browser…

  7. Rafael 09 Julio, 08 @ 7:10 pm

    esta muy bueno, ya lo probe y trabaja muy bien, gracias por publicar esta info y gracias por mencdionar la fuente de donde lo sacaste, saludos.

  8. Luis Fernando 26 Septiembre, 08 @ 7:39 pm

    Gracias me ahorraste mucho tiempo, pase un día entero tratando de resolver este problema

  9. Harold Caceres 04 Octubre, 08 @ 10:06 pm

    Funciona bastante bien, pero el validador de CSS 2.1 de W3C lanza error, de esta manera, solo puede reconocer uno, o html o first-child+html. :S

  10. Harold Caceres 04 Octubre, 08 @ 10:19 pm

    Que equivocación! Creo que fue error de dedo, funciona de maravilla. Lo siento! :D

  11. Eriberto Correa 23 Octubre, 08 @ 5:41 pm

    En realidad todo bien, aqui el “pero”, no me va bien con el overflow:hidden, para el IE6

    div#wn {
    position:absolute;
    _position:relative; /*no me funciona en IE 6*/
    left:300px;
    _left:300px; /*Para IE 6*/
    top:84px;
    _top:84px; /*Para IE 6*/
    bottom:0px;
    width:100%; height:100%;
    clip:rect(0px, 100%, 100%, 0px);
    overflow:hidden;
    _overflow:hidden; /*no me funciona en IE 6*/
    z-index:1;
    }

  12. iLM 27 Octubre, 08 @ 4:56 pm

    No tengo palabras para agradecer esta gran ayuda! Me ha sumamente salvado de mi problema hahaha!

    es una gran razon por la que odio tanto IE6… creo deberia dejar de existir…o talvez yo deba dejar de ser tan vago pero bueno…

    saludos y gracias!

  13. Christian 24 Noviembre, 08 @ 11:08 am

    una ayuda perfecta a este problema, pero la cosa es que los hacks no estan ni sirven para el validado de páginas W3C.

    que hacemos pues?

  14. dark_heaven 28 Noviembre, 08 @ 8:04 am

    Eriberto Correa, para que el overflow funcione en el maldito ie6 solo tienes que poner position:absolute o position:relative al div que contiene tu div #wn, o sea,tienes

    div “contenedor”
    div “wn”
    /div
    /div

    Al que le tienes que asignar la position es al div “contenedor”, al que encierra tu div#wn

  15. SERGI 31 Marzo, 09 @ 10:05 pm

    Oye, excelente! es muy sencillo de implementar y parece que funciona!

    La única pega que tengo desde que instalé IE7 es que no puedo probar mis webs en IE6. Aunque la verdad… estoy un poco en “guerra” con ese navegador… estoy con la causa “muerte a IE6″.

    La lástima es que de los usuarios de Windows que usan IE más o menos la mitad todavía usan IE6 !!!! :(((( me parece que hasta que no “muera” windows Xp no morirá IE6,que es el que se instala por defecto :( en fin…

    SERGI

  16. sergi 31 Marzo, 09 @ 10:09 pm

    Personalmente, no me esfuerzo en nada (hacks y demás) para que se vean bien mis páginas en IE6. Sin embargo, intento trabajar con css más o menos “estandar”, con la esperanza de que aún en IE6 se “vea” la página y sea mínimamente operativa. Si ya el usuario o visitante de la web no es capaz de tener actualizado su navegador… es cosa suya.

    De hecho me imagino que ese tipo de usuarios deben ver desconfiguradas bastantes webs, no?!

Lo sentimos, los comentarios de esta entrada están cerrados.

Minoic

logo de MinoicMinoic.net es un anillo de blogs impulsado desde enero de 2007 por Guillermo Carvajal, Antonio Cambronero, Manuel Almeida y José Luis Orihuela para experimentar nuevas formas de sinergia entre weblogs más allá de los blogs grupales y de las redes comerciales.

Blogs fundadores

Blogs asociados

Bajo licencia Creative Commons Privacidad Grady (theme) Volver arriba ↑