a.css

esbudellant estàndards


Conditional comments delicatessen

16/11/06

Els comentaris condicionals són delicats; cal estar atent als espais.

La següent sentència és incorrecta ja que falta un espai entre IE i 6


<!--[if IE6]>

La sentència correcta:


<!--[if IE 6]>

Aquesta altre sentència és incorrecta ja que sobra un espai entre el guió (-) i el [


<!-- [if IE 6]>

La sentència correcta:


<!--[if IE 6]>

L'espai entre el guió (-) i el [ fa que no llegeixi el condicional l'Internet Explorer 6. L'Internet Explorer 7 sí que ho llegeix.

L'Internet Explorer 7 fa que el document es mostri en blanc si es fa:


< ![endif]-->

En comptes de:


<![endif]-->

Comentaris

  1. Comentat per *e* el 17/11/06

    sincerament, no tinc paraules….

  2. Comentat per albertofs el 17/11/06

    CSS es caprichoso, y aún más lo es ie.
    Pero eso es parte de su encanto.

  3. Comentat per Enric el 17/11/06

    Hi ha que veure quines coses tan ínfimes s’han d’arribar a saber per que a funcioni en l’explorer.

    Gràcies! =)

  4. Comentat per Lali el 04/12/06

    Un post ben útil! ;)

  5. Comentat per CSS per IE7 | bloc.visualpanic.net el 05/02/07

    [...] m’ha costat una estona (serà per que és dilluns?). Com comenta l’Arnau al seu post conditional comments delicatessen, cal vigilar molt amb els espais que queden entre les [...]

  6. Comentat per Anonymous el 23/10/07

    Només afegir un apunt sobre aquest comportament tan surrealista del programari microsoft: En el cas que la condició inclogui la versió 7 d'IE, aleshores el navegador passa per alt aquest problema de sintaxis i la pàgina es pinta correctament.
    Per exemple, tindríem que <![endif] --> seria incorrecte i en IE 7 la pàgina es pintaria en blanc, però només en aquells casos en que la condició sigui equivalent a !(IE 7).

    Exemple. Si pintem la següent expressió:
    <!--[if lt IE 7]> codi <![endif] -->
    IE 7 pintaria la pàgina en blanc perquè hi ha un espai entre (]) i (-), tot i que IE 6 la pintaria sense problemes.
    Ara bé, si provoquem la mateixa "errada" amb l'expressió: <!--[if lte IE 7]> codi <![endif] --> IE 7 pintaria correctament la pàgina (passant per alt el bug).
    Si bé és cert que si d'entrada fem les coses correctament, aquesta anotació no té més transcendència, però si que serveix per il·lustrar un cop més que el nivell de surrealisme del programari microsoft, no té límits.
    Fins i tot ni tan sols els bugs segueixen patrons de comportament.

Afegir un comentari


© Arnau Siches. a.css està sota Llicència Creative Commons.