CSS Hacks : pourquoi faire compliqué quand on peut faire simple ?
Sous titre : Et pourquoi en utiliser tout court ?
Les standards du Web, dans la théorie, c'est très bien. Dans la pratique, c'est très bien aussi, mais quand même un peu moins, et dès lors que l'on souhaite réaliser des designs un tant soit peu alambiqués, force est de constater qu'on est très vite confronté aux différences d'interprétation des recommandations entre les navigateurs, voire à des bugs de ces derniers.
Sont donc apparus les CSS Hacks, des instructions particulières permettant de spécifier des propriétés que seuls les navigateurs visés interpréteront, et ce en utilisant des instructions inconnues par lesdits navigateurs, voire en exploitant des bugs du parser CSS de ces derniers. C'est par exemple un moyen commode d'assurer une mise en page uniforme entre les navigateurs utilisant le modèle de boite Microsoft (typiquement IE 5.x/Win) et le modèle de boite standard (voir OpenWeb à ce sujet).
div {
border: 10px solid;
padding: 10px solid;
}
@media tty {
i{content:"\";/*" "*/}} @import 'midpassbefore.css'; /*";}
}/* */
div {
width: 100px;
}
@media tty {
i{content:"\";/*" "*/}} @import 'midpassafter.css'; /*";}
}/* */
Néanmoins, l'abus de CSS Hacks peut s'avérer très vite dangeureux, tant les feuilles de style deviennent progressivement illisibles et particulièrement difficiles à maintenir. L'exemple ci-dessus (le Mid Pass Filter Hack) parle de lui même. Imaginez donc ce que ça peut donner quand vous tentez de faire cohabiter des hacks pour différents navigateurs (un hack pouvant très bien rentrer en conflit avec un autre). A part une aggravation de votre calvitie peut-être déjà bien prononcée, au final vous ne gagnerez pas grand chose.
Fort heureusement, et à moins d'être un peu maso (star seven hack.. ça aurait pu être le nom d'un proggie AOL, ph34r), bien souvent les seuls hacks que le commun des mortels tente de déployer sont pour IE. Et là, j'en viens à l'essence même de ce billet (oui, ça a été long à introduire, je vous l'accorde) : sachez que Microsoft a pensé à vous en introduisant les commentaires conditionnels, des commentaires HTML qui, comme leur nom ne l'indique pas vraiment, permettent de faire la même chose que les CSS Hacks pour IE, mais en bien plus simple. Et donc en bien mieux.
Plutôt qu'une longue explication, une courte démonstration. Voici l'équivalent du CSS Hack précédent (Mid Pass Filter Hack le bien nommé) avec des commentaires conditionnels. Observez bien la magie s'opérer :
<style type="text/css">
div {
border: 10px solid;
padding: 10px solid;
width: 100px;
}
</style>
<!--[if IE 5]>
<style type="text/css">
div { width: 140px; }
</style>
<![endif]-->
Hop, c'est passé. Je ne sais pas pour vous, mais pour ma part je crois qu'il n'y a pas grand chose à rajouter et que la démonstration est suffisamment convaincante en elle même. La panoplie d'opérateurs disponibles est suffisamment large pour permettre de cibler n'importe quel des IE en version 5 ou supérieure. Et évidemment, mais ça vous l'aviez bien compris, vu des autres navigateurs, c'est un simple commentaire HTML sans intérêt. Bref, du bonheur en barre.
A la base, je devais rédiger un billet très court pour présenter les commentaires conditionnels, parce que ça me semble relativement méconnu et que ça reste au demeurant fort pratique. Mais vous me connaissez, je me suis embarqué dans des explications pas possibles, bla bla box model hack bla bla star seven , et pour le coup, je me suis embrouillé dans la réflexion que je voulais développer, plein d'informations ont fusé pêle-mêle sans trop de liens entre elles, le titre du billet n'est plus trop pertinent (d'où l'ajout du sous-titre), et là, se pose à moi un gros problème : comment conclure tout ceci avec classe et élégance. Et bien, je me contenterai d'ajouter la chose suivante :

Et là, je m'en vais comme un prince.
Par YoGi, vendredi 30 janvier 2004 à 00:09 :: Développement Web :: #11 :: rss
Commentaires
1. Le vendredi 30 janvier 2004 à 11:19, par YoGi
2. Le lundi 2 février 2004 à 14:40, par Philippe (phdm)
3. Le lundi 2 février 2004 à 23:25, par bersace
4. Le mardi 3 février 2004 à 00:26, par YoGi :: site
5. Le mardi 24 février 2004 à 22:20, par Nico
6. Le mardi 27 avril 2004 à 14:21, par Ulmo
7. Le mardi 8 juin 2004 à 23:23, par YoGi
8. Le dimanche 11 juillet 2004 à 16:49, par aza
9. Le lundi 12 juillet 2004 à 16:57, par gcolpart :: site
10. Le lundi 12 juillet 2004 à 17:07, par YoGi
11. Le mercredi 15 mars 2006 à 04:21, par Gwythyr
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.