28172 sujets

CSS et mise en forme, CSS3

De nombreuses méthodes plus ou moins robustes existent pour masquer une série de styles sur IE 6 et 7, dont l'une des plus connues est l'indication du type de média visé placé à la suite de l'import de la feuille de styles:
<style type="text/css">
@import "styles.css" screen;
</style>

J'ignorais jusqu'il y a peu la raison qui faisait qu'IE jusque dans sa version 7 ne chargeait pas les styles lorsqu'ils étaient déclarés de cette manière.
Il s'agit en fait d'une erreur de lecture de la part d'IE cherchant un fichier dont le mot screen fait partie. Il ne trouve pas ce fichier évidemment inexistant et ne charge donc pas la feuille de styles.
Si la méthode fonctionne bien, la requête HTTP inutile — et pour le visiteur, et pour le serveur — me dérange fortement.
Je préconise donc l'utilisation de commentaires conditionnels pour filtrer certaines versions d'IE. Si l'on désire par exemple masquer une feuille de styles seulement pour IE6 mais la charger pour tous les autres navigateurs, on écrira simplement:

<!--[if !IE 6]><!-->
<style media="screen" type="text/css">
@import "styles.css";
</style>
<!--<![ endif ]-->

[i][#brown]Supprimer les espaces avant et après endif[/#][/i]

Voilà, c'était ma considération CSS de la matinée. Smiley smile
Modifié par Benjamin D.C. (07 Apr 2009 - 11:05)