我們都知道瀏覽器之間是有差異的,很多人在使用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 |
看完這張表之后我的第一反應是: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技巧,對所有“非現代”瀏覽器隱藏規則。
新聞熱點
疑難解答