利用hack技术可以为不同的浏览器设置不同的值。例如代码:
.test {
margin-top:10px; /*所有浏览器*/
margin-top:5px\9; /*所有IE浏览器*/
*margin-top:0px; /*IE6、7*/
_margin-top:-10px; /*IE6*/
}
css的顺序很重要,后面的会覆盖前面设置。。所以以上代码在Firefox下margin-top的值为10px,IE8下可以识别第一条和第二条,但第二条会覆盖第一条,故就变为5px,同理IE7下则为0px,IE6下为-10px。
综上所述,符号[\9]所有IE浏览器可识别、[*]IE6、7 能识别、[_]只有IE6下能识别。
现在很多网站都喜欢在右下角出现一个信息提示框,当然有些广告也这么做,不管页面怎么滚动,提示框的位置始终位于右下角,查看效果,对于非IE6的浏览器,问题很简单,只要在css中设置position为fixed即可,但IE6不支持fixed属性。解决这个问题的方法大部分使用javascript来做,监听页面滚动的事件,然后实时计算出提示框的top值并把此值赋给提示框。本文要讲的是js的另一种用法,直接在css中通过eval来执行js,具体参看下面示例代码。另外同时用到了css hack技术,在css的属性前加符号“_”话,只有IE6才能识别并应该。注意 css 中 *html的代码解决滚动时候提示框闪动的问题。
本人认为此文最大的价值是明白了javascript代码也能隐藏在css中执行,不得不说脚本真是太强大~~~
<!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=utf-8" />
<title>demo</title>
<style>
#top{
border:1px solid blue;
background:#ccc;
width:200px;
height:150px;
position:fixed;
_position:absolute;
bottom:0;
right:0;
_top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop,10)||0)-(parseInt(this.currentStyle.marginBottom,10)||0)));
}
*html{
background-image:url(about:blank);
background-attachment:fixed;
}
</style>
</head>
<body >
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<div id="top">
测试效果
</div>
</body>
</html>
本人参考借鉴 http://loo2k.com/ie6-position-fixed/ 中的知识