滚滚长江东流水,黄河入海不复返

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

由于各浏览器(IE、gecko、opera......)对CSS的渲染方式都有所不同,造成显示效果不同,
所以可通过对其载入不同CSS的方法来解决,下面介绍下二种方法来实现,
不一定很实用,难的玩一把。

纯CSS方式

Code

.box{
    width: 20em;
    height:20em;
    background: #369;
}
/*--gecko内核--*/
@media all and (min-width: 0px){
  box{
    background: #CC0000;
  }
}
/*--opera hacks--*/
/*--不能通过W3C CSS检验--*/
<!--[if IE ]><style>
.box{    background: #808080;
}
</style><![endif]-->

以上代码运行的结果,在IE中是灰色,Opera中是紫红,Firefox中是蓝色

在IE7以前版本还可采用CSS2的属性选择符来区别,不幸的是IE7开始已能识别。

本文章由forestgan于15-Oct-2006发表

javascript的方法

var css_browser_selector = function() {
	var 
		ua = navigator.userAgent.toLowerCase(),
		is = function(t){ return ua.indexOf(t) != -1; },
		h = document.getElementsByTagName('html')[0],
		b = (!(/opera|webtv/i.test(ua)) && /msie (\d)/.test(ua)) ? 
                        ((is('mac') ? 'ieMac ' : '') + 'ie ie' + RegExp.$1) : is('gecko/') ? 'gecko' : is('opera') ? 'opera'
                        : is('konqueror') ? 'konqueror' : is('applewebkit/')
                        ? 'webkit safari' : is('mozilla/') ? 'gecko' : '', os = (is('x11') || is('linux')) ? ' linux'
                        : is('mac') ? ' mac' : is('win') ? ' win' : ''; var c = b+os+' js'; h.className += h.className?' '+c:c; }();

此脚本能区别更多的浏览器,具体使用方法可看脚本原作者网站 

演示地址

posted on 2006-12-25 16:27  Steveson  阅读(328)  评论(0编辑  收藏  举报