浏览器CSS兼容总结

 

首先推荐一款集成多个版本IE(IE5.5、IE6、IE7、IE8)的样式测试工具(IETester):

http://www.my-debugbar.com/wiki/IETester/HomePage

 

以下是上个月总结的样式兼容方面的技巧,现发布到博客。

 

1.        使用DIV+CSS布局注意事项:

 

使用DIV+CSS布局,要配合一定的table布局才能较好的达到多浏览器兼容。

完全使用DIV+CSS布局实现多浏览器的兼容,难度较大;

在对样式不熟悉且项目需求中没有要求一定要用DIV+CSS布局的情况下,建议直接使用table布局,这样更容易实现多浏览器兼容;

 

2.        IE不同版本之间的兼容,IE与火狐的兼容:

 

可以使用如下形式(IE6为例),为特定版本的IE使用特定的样式达到IE不同版本间的样式兼容

    <!--[if lte IE 6]>

<link href="../../Content/DropdownMenuIE6.css" rel="Stylesheet" type="text/css" />

<![endif]-->

这里的<!--[if lte IE 6]><![endif]-->之间除了可以使用link标签引用样式外,还可以用style标签声明特定的样式。

 

_width_height等在样式属性名前加“_”只有IE6才能识别。

在样式属性值之后接“!important”(必须写在未加!important的同名属性前),IE6会忽略,IE7IE8FF能识别。

在样式属性前加“*”则只有IE能够识别。

例如:

区别FFIE7IE6

       background:orange;*background:green !important;*background:blue;

 

IE6

IE7

FF

*

×

!important

×

#someNode

{

    position: fixed; /* FF及其他浏览器*/

   #position: fixed; /* IE7 */

   _position: fixed; /*IE6以及更老的版本*/

}

 

#example { color: #333; } /* FF及其他浏览器*/
* html #example { color: #666; } /* IE6 */
*+html #example { color: #999; } /* IE7 */

注意:

*+html IE7HACK 必须保证HTML顶部有如下声明:

 以下为引用的内容:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

 

可以使用以下HTML

<meta http-equiv="x-ua-compatible" content="ie=7" />

IE8使用兼容IE7的样式模式。

 

当由于使用margin padding导致的IEFF显示的宽度有差异时,除了可以尝试使用上文提及的方法处理外,还可以使用脚本在相应的部分添加样式,例如:

<script language="javascript" src="../../Scripts/jquery-1.3.2.js" type="text/javascript"></script>

<script type="text/javascript" language="javascript" >

//火狐浏览器样式

$(document).ready(function(){

    var bro=$.browser;

    if(bro.mozilla) {

       $("#aboutMenu").attr("style","padding:0 33px 0 23px;");

       $("#headTaleFF").attr("style","width:951px;");

    }  

})

</script>

上面的代码是使用jquery判断当前的浏览器是否是火狐,当是火狐浏览器时,添加相应的样式(覆盖之前产生差异的样式),使得火狐中的显示宽度与IE保持一致。

 

3. 补充一些项目中的样式问题:

 

用hr标签显示一条横线时,在FF中的颜色始终是深黑色(即使写了颜色样式)。

这时可以考虑用DIV实现显示横线,但如果样式中不加overflow: hidden;则在IE6中横线的高度会有20像素左右,而不是1像素。正确的写法如下:

<div style="background-color: #b2b5b6; width: 179px; height: 1px; overflow: hidden;" />

 

在使用li标签时(例如在导航条中),因为li标签的内容前会有列表符号,所以会空出一部分,如果要消除这部分空余,在li标签的样式里添加 padding: 0px;margin-left: 0px;list-style-type: none;既可。

 

4.针对webkit的hacks

 

    @media screen and (-webkit-min-device-pixel-ratio:0) {

    /* 针对Google ChromeSafari 3.0Opera 9 CSS样式 */

    }

这样的hacks同样是被Google Chrome、Safari 3.0、Opera 9 所识别的。“另有一种通过附加#的Css hack对chrome无效,可能是Webkit版本不同。”

将chrome的字体设置为宋体,其它浏览器仍然使用默认设置的字体:

    @media screen and (-webkit-min-device-pixel-ratio:0) {

    .parent-cat li{font-family:'宋体'}

    .parent-cat li{font-family:inhert;#}

    }

在设置完针对google chrome的样式后,再通过css inhert + # hacks即可达目标。

(针对webkit的hacks来源:http://www.ajaxbbs.net/post/google-chrome-only-css-hacks.html

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值