Question

  • CSS a @import, n'est-ce pas?
  • IE6 comprend le * sélecteur html bidouille, non?

Est-il possible de les combiner comme

//*html @import url(ie6hacks.css);

ou éventuellement

//*html { @import url(ie6hacks.css); }

?

Les bons navigateurs doivent éviter cela, cela fonctionnera-t-il toujours dans IE6? Comment cela ressemble-t-il comme solution Je peux clairement voir que ça a l'air moche comme CSS normal.

Était-ce utile?

La solution

  

Est-il possible de les combiner comme

* html @import url(ie6hacks.css);

Non. Les règles at telles que @import ne sont pas des sélecteurs et ne peuvent donc pas être combinées avec d'autres sélecteurs.

Il existe des moyens de faire en sorte que les at-rules fonctionnent comme des hacks, par exemple ceci:

@import url(/* no! */iehacks.css);

sera chargé par IE6 / 7 mais pas par les autres navigateurs. Cependant, je ne recommanderais pas de l'utiliser; Ce genre de chose peut être très fragile. Cet exemple particulier est également CSS non valide.

Comme le dit Daniel, si vous voulez des fichiers .css séparés pour les hacks, la meilleure approche consiste à utiliser une balise de lien conditionnellement incluse. La beauté de & # 8220; * html & # 8221; c'est que vous pouvez mettre des règles de hack dans la même feuille de style, ce qui est plus facile à gérer s'il n'y en a que quelques-unes de toute façon, si vous avez une feuille de style séparée, elle n’offre aucun avantage.

IMO & # 8220; * html & # 8221; pour IE6 est le seul piratage qu'il soit encore légitime d'utiliser aujourd'hui. Tous les modèles de modèle de boîte sont morts avec IE5 & # 8201; & # 8212; & # 8201; en supposant que vous n'utilisez pas le mode IE6 Quirks, que vous ne devriez pas & # 8201; & # 8212; & # 8201; et les autres les navigateurs, même IE7, sont généralement trop bons pour pouvoir attaquer avec un simple piratage; les quelques hacks qui peuvent les cibler sont trop complexes / fragiles / invalides pour vraiment les utiliser.

(Et en tant qu'inventeur du modèle simplifié Box Hack, je leur dis un bon débarras.)

Autres conseils

Pourquoi s'embêter avec ce foutu farfelu quand vous pouvez utiliser des commentaires conditionnels pour inclure uniquement le CSS dont vous avez besoin?

<!--[if IE 6]>
    <link rel="stylesheet" type="text/css" href="ie-6.0.css" />
<![endif]-->

Quelques ressources:

Si vous devez réellement utiliser @import, vous pouvez tirer parti du fait qu'IE ne suit pas les spécifications de la règle @import. Normalement, il doit s'agir de la toute première réflexion dans une feuille de style ou d'une balise de style, ou elle est complètement ignorée. Cependant, IE6 (du moins lorsque je l'ai testé) ne semble pas s'en soucier. Dans ce sens, vous pouvez faire ceci:

<style type="text/css">
.NotARealClass { }

@import url("ie-style.css");
</style>

Notez que je n’ai pas testé cela dans des applications autres que FF3 (où il ne parvient pas à charger ie-style.css) et IE6 (où il le charge de toute façon). Votre kilométrage peut varier.

Malheureusement, le hack * html ne peut pas être utilisé pour importer d'autres feuilles de style.

Voici un article expliquant ce piratage et d'autres utiles pour attaquer les bogues spécifiques à IE.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top