我们都知道浏览器之间是有差异的,很多人在使用XHTML+CSS方式制作网页的时候都曾为此无比头痛。要在这些差异的影响下工作需要很多的技巧,“隐藏CSS”就是其中很重要的一种技巧(甚至是最重要的)。这种技巧的主要思想是,用某些方式对某些浏览器隐藏某些重载的CSS规则。
这篇文章并不是想教你如何使用这种技巧,它面向的是有一定CSS基础的设计开发者,我假定你曾经使用过某种隐藏CSS规则的方法。这里是想把可用的方法与被隐藏规则的浏览器都列出来,方便大家在平时工作时随时查阅。
在这张大表里列出了九种方法,我就称其为“独孤九剑”,希望能帮上你的忙:-D
注:此表格原载 w3development.de。
看完這張表之後我的第一個反應是:Mozilla和Opera真乃神人也。只有一條規則會對Opera最老的一個版本起作用,所以後面我們在講到隱藏規則的時候基本上就不考慮Mozilla和Opera了。以下列出這九種「劍法」的招數,同時在旁邊也注上了我個人推薦的使用場合。注意,我推薦的不一定與你的需求相符,使用前請對照上面的表格。
@import url("global.css")
對舊版(版號小於5)的瀏覽器隱藏規則。
@import url(global.css)
對Windows平台的舊版(版號小於5)瀏覽器隱藏規則。
@import "global.css"
對Windows平台的舊版(版號小於5)瀏覽器隱藏規則。
<link href="global.css" type="text/css" rel="stylesheet" media="all">
對Netscape 4.x隱藏規則。
@media all { ... /* 需要隱藏的規則 */ }
如果只考慮NN和IE的話就是只對4.x版本隱藏規則。
#anySelector/* */ { color:#f00; }
這可是精確導引飛彈。只對IE5及以下版本隱藏規則。所以如果要把IE5和IE5.5分開定義規則,那就靠它了。
p[id] { color: #0f0; }
又一個精確導引飛彈。如果不關心舊版瀏覽器,那就是只對IE隱藏規則。有關屬性選擇器的更多資訊請看W3C的文件。
p>span { color: #00f; }
基本同上,只是Mac平台部分版本的IE支援這個規則。
p#tantek { voice-family: "\"}\""; /* 某些瀏覽器有解析bug */ voice-family: inherit; /* 在這以下的規則都會被忽略 */ color: #f00; }
著名的隱藏CSS技巧,對所有「非現代」瀏覽器隱藏規則。