針對瀏覽器隱藏CSS之獨孤九劍
Hide CSS for Browsers
我們都知道瀏覽器之間是有差異的,很多人在使用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("")
@import url("global.css")
對老版本(版號小於5)的瀏覽器隱藏規則。
@import url()
@import url(global.css)
對Windows平台的老版本(版號小於5)瀏覽器隱藏規則。
@import ""
@import "global.css"
對Windows平台的老版本(版號小於5)瀏覽器隱藏規則。
media=""
對Netscape 4.x隱藏規則。
@media
@media all {... /* 需要隱藏的規則 */}
如果只考慮NN和IE的話就是只對4.x版本隱藏規則。
comment
#anySelector/* */ { color:#f00; }
這可是精確制導飛彈。只對IE5及以下版本隱藏規則。所以如果要把IE5和IE5.5分開定義規則,那就靠它了。
attribute
p[id] { color: #0f0; }
又一個精確制導飛彈。如果不關心老版本瀏覽器,那就是只對IE隱藏規則。關於屬性選取器的更多資訊請看W3C的文檔。
child
p>span { color: #00f; }
基本同上,只是Mac平台部分版本的IE支援這個規則。
Tantek
p#tantek {voice-family: "\"}\""; /* 某些瀏覽器有解析bug */voice-family: inherit; /* 在這以下的規則都會被忽略 */color: #f00;}
著名的隱藏CSS技巧,對所有“非現代”瀏覽器隱藏規則。