打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
CSS Hack技术解决多浏览器兼容问题
CSS Hack就是指我们为了兼容各浏览器,而使用的特别的CSS定义技巧,我们在用DIV+CSS制作网页时,由于不同的浏览器,对CSS的支持及解析结果不一样,得不到我们所需要的页面效果。
AD:2013云计算架构师峰会超低价抢票中
本文向大家描述一下如何使用CSS Hack技巧解决DIV+CSS布局多浏览器兼容问题,针对不同的浏览器写不同的CSS代码的过程,就叫CSS Hack,相信本文介绍一定会让你有所收获。
CSS Hack技巧汇总
CSS Hack简介
我们在用DIV+CSS制作网页时,由于不同的浏览器,比如InternetExplorer6,InternetExplorer7,MozillaFirefox等对CSS的支持及解析结果不一样,导致生成的页面效果不一样,得不到我们所需要的页面效果。这时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。这个针对不同的浏览器写不同的CSS代码的过程,就叫CSS Hack。
为了向你展示这些CSS Hack是否正常运作,我新建六个P标签,并给每一个P标签一个特有的id。这将向你展示CSS Hack的运作情况。
<pidpid="opera">我来自Opera7.2-9.5</p>
<pidpid="safari">我是神奇的Safari</p>
<pidpid="firefox">我来自Firefox</p>
<pidpid="firefox12">我是FF前辈Firefox1-2</p>
<pidpid="ie7">我是IE7</p>
<pidpid="ie6">我是残品IE6</p>
然后我让这些P标签默认都不显示
<styletypestyletype="text/css">
bodyp{display:none;}
</style>
使用IE CSS条件注释区分IE浏览器
最简单的区分IE浏览器的方法自然是使用他们的条件注释。微软创建了一个强大的语法来让我们去实现这个功能。我不想再详细地介绍IE条件注释了,我想你在搜索引擎能搜索到上万个搜索条目,我这里只要这两个:
<!--[ifIE7]>
<styletypestyletype="text/css">
</style>
<![endif]-->
<!--[ifIE6]>
<styletypestyletype="text/css">
</style>
<![endif]-->
使用CSS解析器Hacks区分IE
虽说IE条件注释十分简单好用,但是如果你想把全部的CSS放到一个文件里的话,那么你不得不使用别的方法。注意这里的IE7Hack将只对IE7有效,因为IE6根本不知道>选择符。同时你也得注意>选择符对于其他浏览器同样是无效的。
/*IE7*/
html>body#ie7
{*display:block;}
/*IE6*/
body#ie6
{_display:block;}
CSS Hack区分Firefox
第一个使用了body:empty来区分Firefox1和2。第二个hack使用了全部Firefox浏览器的专有扩展-moz。-moz只对Firefox有效,使用这个Hack大可不必担心其他浏览器的影响。
/*Firefox1-2*/
body:empty#firefox12
{display:block;}
/*Firefox*/
@-moz-documenturl-prefix()
{#firefox{display:block;}}
CSS Hack区分Safari
Safari的CSS Hack与Firefox的hack看起来很像,使用的是Safari浏览器的专有扩展-webkit且只对Safari浏览器有效。
/*Safari*/
@mediascreenand(-webkit-min-device-pixel-ratio:0)
{#safari{display:block;}}
CSS Hack区分Opera
/*Opera*/
@mediaalland(-webkit-min-device-pixel-ratio:10000),
notalland(-webkit-min-device-pixel-ratio:0)
{head~body#opera{display:block;}}
然后,全部合在一起便是完整代码:
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<htmllanghtmllang="en">
<head>
<metahttp-equivmetahttp-equiv="Content-Type"content="text/html;charset=utf-8">
<title>CSSBrowserHacks</title>
<styletypestyletype="text/css">
bodyp
{
display:none;
}
/*Opera*/
html:first-child#opera
{
display:block;
}
/*IE7*/
html>body#ie7
{
*display:block;
}
/*IE6*/
body#ie6
{
_display:block;
}
/*Firefox1-2*/
body:empty#firefox12
{
display:block;
}
/*Firefox*/
@-moz-documenturl-prefix()
{
#firefox{display:block;}
}
/*Safari*/
@mediascreenand(-webkit-min-device-pixel-ratio:0)
{
#safari{display:block;}
}
/*Opera*/
@mediaalland(-webkit-min-device-pixel-ratio:10000),
notalland(-webkit-min-device-pixel-ratio:0)
{
head~body#opera{display:block;}
}
</style>
</head>
<body>
<pidpid="opera">我来自Opera7.2-9.5</p>
<pidpid="safari">我是神奇的Safari</p>
<pidpid="firefox">我来自Firefox</p>
<pidpid="firefox12">我是FF前辈Firefox1-2</p>
<pidpid="ie7">我是囧IE7</p>
<pidpid="ie6">我是残品IE6</p></body>
</html>
CSS Hack虽好且方便兼容各浏览器,但是通不过W3C验证,所以还得自己权衡是否有必要去使用。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
浏览器专属 CSS Hack:区分 Firefox / Opera / Safari / Internet Explorer
Css Hack汇总(转)_月满西楼_闪吧新社区
各种浏览器不同版本的css hack 大全
主流浏览器的Hack写法 | css3教程
CSS hack 技术文章(1)
网站重构与Web标准设计
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服