我们都知道浏览器之间是有差异的,很多人在使用XHTML+CSS方式制作网页的时候都曾为此无比头痛。要在这些差异的影响下工作需要很多的技巧,“隐藏CSS”就是其中很重要的一种技巧(甚至是最重要的)。这种技巧的主要思想是,用某些方式对某些浏览器隐藏某些重载的CSS规则。
这篇文章并不是想教你如何使用这种技巧,它面向的是有一定CSS基础的设计开发者,我假定你曾经使用过某种隐藏CSS规则的方法。这里是想把可用的方法与被隐藏规则的浏览器都列出来,方便大家在平时工作时随时查阅。
在这张大表里列出了九种方法,我就称其为“独孤九剑”,希望能帮上你的忙:-D
注:此表格原载 w3development.de。
このリストを読んだ後の私の最初の反応は次のとおりです。Mozilla と Opera は本当に素晴らしいです。 Opera の最も古いバージョンでは 1 つのルールのみが有効となるため、後で隠しルールについて話すときは、基本的に Mozilla と Opera を無視します。以下に9つの「剣技」の技を列挙し、個人的におすすめの使用シーンも併記します。上記の表をご参照の上、ご利用ください。
<span lang="ja" style="FONT-SIZE: 12pt">@import url("global.css")<code><span lang="en" style="FONT-SIZE: 12pt">@import url("global.css")</span>
古いバージョン (バージョン番号 5 未満) のブラウザーのルールを非表示にします。
<span lang="ja" style="FONT-SIZE: 12pt">@import url(global.css)<code><span lang="en" style="FONT-SIZE: 12pt">@import url(global.css)</span>
Windows プラットフォームの古いバージョン (バージョン番号 5 未満) を使用するブラウザーのルールを非表示にします。
<span lang="ja" style="FONT-SIZE: 12pt">@import "global.css"<code><span lang="en" style="FONT-SIZE: 12pt">@import "global.css"</span>
Windows プラットフォームの古いバージョン (バージョン番号 5 未満) を使用するブラウザーのルールを非表示にします。
<span lang="ja" style="FONT-SIZE: 12pt"><link href="global.css" type="text/css" rel="stylesheet" media="all"/> ;<CODE><SPAN lang=en style="FONT-SIZE: 12pt"><link href="global.css" type="text/css" rel="stylesheet" media="all"/></span>
Netscape 4.x のルールを非表示にします。
<span lang="en">@media all {<p></p></span>
<span lang="en">... /* </span>需要隐藏的规则<span lang="en"> */<p></p></span>
<span lang="en">}<p></p></span>
NN と IE のみを考慮すると、4.x バージョンのルールのみが非表示になります。
<span lang="ja" style="FONT-SIZE: 12pt">#anySelector/* */ { color:#f00; }<code><span lang="en" style="FONT-SIZE: 12pt">#anySelector/* */ { color:#f00; }</span>
これは精密誘導ミサイルです。 IE5 以下のルールのみを非表示にします。したがって、IE5 と IE5.5 に対して個別にルールを定義したい場合は、それを利用してください。
<span lang="ja" style="FONT-SIZE: 12pt">p[id] { color: #<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False">0f</chmetcnv>0 }<code><span lang="en" style="FONT-SIZE: 12pt">p[id] { color: #<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="0" unitname="F">0f</chmetcnv>0; }</span>
もう一つの精密誘導ミサイル。古いブラウザを気にしない場合は、IE のルールのみを非表示にすることができます。属性セレクターの詳細については、W3C のドキュメント を参照してください。
<span lang="ja" style="FONT-SIZE: 12pt">p>span { color: #<chmetcnv w:st="on" tcsc="0" numbertype="1" negative=" False" hasspace="False" sourcevalue="0" unitname="F">00f</chmetcnv>; }<code><span lang="en" style="FONT-SIZE: 12pt">p>span { color: #<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="0" unitname="F">00f</chmetcnv>; }</span>
基本的には上記と同じですが、Mac プラットフォーム上の IE の一部のバージョンがこのルールをサポートしている点が異なります。
<span lang="en">p#tantek {<p></p></span>
<span lang="en"><span style="mso-spacerun: yes"> </span>voice-family: "\"}\""; /* </span>某些浏览器有解析<span lang="en">bug */<p></p></span>
<span lang="en"><span style="mso-spacerun: yes"> </span>voice-family: inherit; /* </span>在这以下的规则都会被忽略<span lang="en"> */<p></p></span>
<span lang="en"><span style="mso-spacerun: yes"> </span>color: #f00;<p></p></span>
<span lang="en">}<p></p></span>
すべての 「非現代的」のための有名な隠蔽 CSS トリック ブラウザの隠蔽ルール