我们都知道浏览器之间是有差异的,很多人在使用XHTML+CSS方式制作网页的时候都曾为此无比头痛。要在这些差异的影响下工作需要很多的技巧,“隐藏CSS”就是其中很重要的一种技巧(甚至是最重要的)。这种技巧的主要思想是,用某些方式对某些浏览器隐藏某些重载的CSS规则。
这篇文章并不是想教你如何使用这种技巧,它面向的是有一定CSS基础的设计开发者,我假定你曾经使用过某种隐藏CSS规则的方法。这里是想把可用的方法与被隐藏规则的浏览器都列出来,方便大家在平时工作时随时查阅。
在这张大表里列出了九种方法,我就称其为“独孤九剑”,希望能帮上你的忙:-D
注:此表格原载 w3development.de。
Browser | @import url("...") | @import url(...) | @import "..." | media="" | @media | comment | attribute | child | Tantek |
---|---|---|---|---|---|---|---|---|---|
Amaya 5.1 Win | x | x | x | x | |||||
IE 3 Win | x | x | x | x | x | x | x | ||
IE 4 Win | x | x | x | x | x | x | x | x | |
IE 5 Win | x | x | x | x | |||||
IE 5.5 Win | x | x | x | ||||||
IE 6 Win | x | x | |||||||
IE 4.01 Mac | x | x | x | x | x | x | |||
IE 4.5 Mac | x | x | x | x | |||||
IE 5 Mac | x | x | x | ||||||
Konqueror 2.1.1 | x | ||||||||
Mozilla 1.0 | |||||||||
Netscape 4.x | x | x | x | x | x | x | x | x | |
Netscape 6.01 | |||||||||
Netscape 6.1 | |||||||||
Netscape 6.2 | |||||||||
Opera 3.60 Win | x | ||||||||
Opera 4.02 Win | |||||||||
Opera 5.02 Win | |||||||||
Opera 5.12 Win | |||||||||
Opera Tech Preview 3 Mac |
Ma première réaction après avoir lu cette liste est : Mozilla et Opera sont vraiment des dieux. Une seule règle prendra effet sur la version la plus ancienne d'Opera, donc lorsque nous parlerons plus tard de règles cachées, nous ignorons fondamentalement Mozilla et Opera. Les neuf mouvements de « maîtrise de l’épée » sont répertoriés ci-dessous, avec mes occasions d’utilisation personnellement recommandées également notées à côté d’eux. Notez que ce que je recommande ne correspond pas nécessairement à vos besoins. Veuillez vous référer au tableau ci-dessus avant utilisation.
@import url("global.css")
Masquer les règles pour les navigateurs avec des versions plus anciennes (numéro de version inférieur à 5).
@import url(global.css)
Masquer les règles pour les navigateurs dotés d'anciennes versions de la plateforme Windows (numéro de version inférieur à 5).
@import "global.css"
Masquer les règles pour les navigateurs dotés d'anciennes versions de la plateforme Windows (numéro de version inférieur à 5).
<link href="global.css" type="text/css" rel="stylesheet" media="all"/>
Masquer les règles pour Netscape 4.x.
@media all { ... /* 需要隐藏的规则 */ }
Si vous ne considérez que NN et IE, vous ne masquerez que les règles de la version 4.x.
#anySelector/* */ { color:#f00; }
Il s'agit d'un missile à guidage de précision. Masquez uniquement les règles pour IE5 et versions antérieures. Donc, si vous souhaitez définir des règles séparément pour IE5 et IE5.5, comptez-y.
p[id] { color: #0f0; }
Un autre missile à guidage de précision. Si vous ne vous souciez pas des anciens navigateurs, vous pouvez masquer les règles uniquement dans IE. Pour plus d'informations sur les sélecteurs d'attributs, veuillez consulter la documentation W3C.
p>span { color: #00f; }
Fondamentalement comme ci-dessus, sauf que certaines versions d'IE sur la plateforme Mac prennent en charge cette règle.
p#tantek { voice-family: "\"}\""; /* 某些浏览器有解析bug */ voice-family: inherit; /* 在这以下的规则都会被忽略 */ color: #f00; }
La fameuse astuce CSS cachée qui cache les règles de tous les navigateurs "non modernes".