返回首页当前位置:首页 >> 网站建设 >> 正文

用某些方式对某些浏览器隐藏某些重载的CSS规则

文章来自:互联网 | 发表时间:2007-9-23 22:51:07

我们都知道浏览器之间是有差异的,很多人在使用 XHTML+CSS方式制作网页的时候都曾为此无比头痛。要在这些差异的影响下工作需要很多的技巧,“隐藏CSS”就是其中很重要的一种技巧(甚至是最重要的)。这种技巧的主要思想是,用某些方式对某些浏览器隐藏某些重载的CSS规则。

这篇文章并不是想教你如何使用这种技巧,它面向的是有一定CSS基础的设计开发者,我假定你曾经使用过某种隐藏CSS规则的方法。这里是想把可用的方法与被隐藏规则的浏览器都列出来,方便大家在平时工作时随时查阅。

在这张大表里列出了九种方法,我就称其为“独孤九剑”,希望能帮上你的忙:-D

注:此表格原载 w3development.de。

看完这张表之后我的第一反应是: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="" 

<link href="global.css" type="text/css" rel="stylesheet" media="all"/> 

对Netscape 4.x隐藏规则。

@media 
 
@media all { 
 
... /* 需要隐藏的规则 */ 

} 

如果只考虑NN和IE的话就是只对4.x版本隐藏规则。

comment 
 
#anySelector/* */ { color:#f00; } 

这可是精确制导导弹。只对IE5及以下版本隐藏规则。所以如果要把IE5和IE5.5分开定义规则,那就靠它了。

child 
 
p>span { color: #00f; } 

基本同上,只是Mac平台部分版本的IE支持这个规则。

Tantek 
 
p#tantek { 
 
voice-family: "\"}\""; /* 某些浏览器有解析bug */ 
 
voice-family: inherit; /* 在这以下的规则都会被忽略 */ 
 
color: #f00; 
 
}

著名的隐藏CSS技巧,对所有“非现代”浏览器隐藏规则。