WEB开发网
开发学院网页设计DivCss CSS浏览器兼容方案-hack与一个完全css做的滑动菜单... 阅读

CSS浏览器兼容方案-hack与一个完全css做的滑动菜单

 2008-08-08 19:26:28 来源:WEB开发网   
核心提示:1、仅IE7与IE5.0可以识别*+html select {…} 当面临需要只针对IE7与IE5.0做样式的时候就可以采用这个HACK,2、仅IE7可以识别*+html select {…!important;} 当面临需要只针对IE7做样式的时候就可以采用这个HACK,CSS浏览器兼容方案-hack与一个完全css

1、仅IE7与IE5.0可以识别

*+html select {…}

当面临需要只针对IE7与IE5.0做样式的时候就可以采用这个HACK。

2、仅IE7可以识别

*+html select {…!important;}

当面临需要只针对IE7做样式的时候就可以采用这个HACK。

3、IE6及IE6以下识别

* html select {…}

这个地方要特别注意很多博客都写成了是IE6的HACK其实IE5.x同样可以识别这个HACK。其它浏览器不识别。

4、html/**/ >body select {…}

html/**/ >body select {…}

这句与上一句的作用相同。

5、仅IE6不识别,屏蔽IE6

select { display /*屏蔽IE6*/:none;}

这里主要是通过CSS注释分开一个属性与值,注释在冒号前。

6、仅IE6与IE5不识别,屏蔽IE6与IE5

select/**/ { display /*IE6,IE5不识别*/:none;}

这里与上面一句不同的是在选择符与花括号之间多了一个CSS注释。不屏蔽IE5.5

7、仅IE5不识别,屏蔽IE5

select/*IE5不识别*/ {…}

这一句是在上一句中去掉了属性区的注释。只有IE5不识别,IE5.5可以识别。

8、盒模型解决方法

selct {width:IE5.x宽度; voice-family :”\”}\”"; voice-family:inherit; width:正确宽度;}

盒模型的清除方法不是通过!important来处理的。这点要明确。

9、只有Opera识别

@media all and (min-width: 0px){ select {……} }

针对Opera浏览器做单独的设定。
以上都是写CSS中的一些HACK,这些都是用来解决局部的兼容性问题,如果希望把兼容性的内容也分离出来,不妨试一下下面的几种过滤器。这些过滤器有的是写在CSS中通过过滤器导入特别的样式,也有的是写在HTML中的通过条件来链接或是导入需要的补丁样式。

10、IE5.x的过滤器,只有IE5.x可见

@media tty {
i{content:”\”;/*” “*/}} @import ‘ie5win.css’; /*”;}
}/* */

11、IE5/MAC的过滤器,一般用不着

/*\*//*/
@import “ie5mac.css”;
/**/

12、IE的if条件Hack

<!--[if IE]> Only IE <![endif]--> 所有的IE可识别
<!--[if IE 5.0]> Only IE 5.0 <![endif]--> 只有IE5.0可以识别
<!--[if gt IE 5.0]> Only IE 5.0+ <![endif]--> IE5.0包换IE5.5都可以识别
<!--[if lt IE 6]> Only IE 6- <![endif]--> 仅IE6可识别
<!--[if gte IE 6]> Only IE 6/+ <![endif]--> IE6以及IE6以下的IE5.x都可识别
<!--[if lte IE 7]> Only IE 7/- <![endif]--> 仅IE7可识别

你在写css时样式表加上浏览器标识符就行了,各浏览器区别如下:
IE都能识别*,标准浏览器(如FF)不能识别*;
IE6能识别*,但不能识别 !important;
IE7能识别*,也能识别 !important;
FF不能识别*,但能识别 !important;
例如style=”*width:10px;!important width:20px;”
这样在IE6下宽度为10px,在IE7下宽度时20px

最新的CSS兼容方案,让你的样式完美兼容各大浏览器,这个方案主要是用来解决Safari的,Opear是在测试的时候顺带试了一下,结果发现竟然也行,所以顺便也解决了。

.e {/*FF OP*/
background-color: #FF0000
}
html* .e{/*Sa IE7 OP*/
background-color:#FF00FF
}
*+html .e{
background-color:#000000;/*OP*/
*background-color:#0000FF;/*IE7*/
}
* html .e{/*IE6*/
background-color:#00FFFF
}

经FF2、OP9.21、OP9.10、Sa3.0.3(pc)、IE7、IE6测试通过,如果你在其他的浏览器版本上测试过,需要注意的是:IE7对样式的解释跟DTD是有关,在没有DTD的时候,IE7是能读取IE6的hack的

一个完全css 做的滑动菜单。

Code:aa.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style>
body{margin:0px;}
#menu{font-size:12px;position:relative;}
#menu ul{ list-style:none;}
#menu ul li{float:left;position:relative;}
#menu a{ display:block;padding:2px 10px;margin:3px;border:1px solid #aaa;background:#cacaca;color:#fff;text-decoration:none;}
#menu a:hover{background:#fafafa;color:#000;border:1px solid #000;}
#menu ul ul{position:absolute;left:3px;top:23px;visibility:hidden;}
#menu ul a:hover ul{visibility:visible;}
#menu ul ul li a{display:block;width:100px;height:15px;margin:0;border:0;border-bottom:1px solid #858585;} 
#menu ul ul li{clear:both;text-align:left;font-size:12px;}
#menu ul ul li a:hover{border:0;background:#fafafa;border-bottom:1px solid #fff;}
#menu table {position:absolute; top:0; left:0;}

*{margin:0px;}
</style>
</head>

<body>
<div>
<span id="menu">
   <ul>
    <li><a href="#">首页
      <!--[if IE 7]><!--></a><!--<![endif]-->
      <!--[if lte IE 6]><table><tr><td><![endif]-->
      <ul>
     <li><a href="#">内容</a></li>
    <li><a href="#">文本</a></li>
   </ul>
   <!--[if lte IE 6]></td></tr></table></a><![endif]-->
   </li>
   <li><a href="#">分类
     <!--[if IE 7]><!--></a><!--<![endif]-->
     <!--[if lte IE 6]><table><tr><td><![endif]-->
      <ul>
     <li><a href="#">内容</a></li>
    <li><a href="#">文本</a></li>
   </ul>
   <!--[if lte IE 6]></td></tr></table></a><![endif]-->
   </li>
</ul>
</span>
<div>
</body>
</html>

Tags:CSS 浏览器 兼容

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接