IE6 fixed的完美解决方案
来源:互联网 发布:网络热门歌曲排行榜 编辑:程序博客网 时间:2024/06/10 16:29
转自:http://www.cnblogs.com/aiyuchen/archive/2011/03/29/1999268.html
第一种方法:纯CSS
目前网上有的比较多的是这种解决方案(纯CSS):
html{overflow:hidden;}
body{height:100%;overflow:auto;}
#rightform form{position:absolute;right:30px;top50px;}
这个方法有一个bug未解决:在IE6下会把所有position:absolute都变成“浮动”的元素;还有使用js方法滚动滚动条时会出现对象闪烁,如下方法结合了CSS和js的办法,解决了以上的问题。
<!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
>IE6 fixed</
title
>
<
style
type
=
"text/css"
>
*
{
margin: 0px;
padding: 0px;
}
body {
_background-image: url(about:blank); /*用浏览器空白页面作为背景*/
_background-attachment: fixed; /* prevent screen flash in IE6 确保滚动条滚动时,元素不闪动*/
}
#topNav {
width: 980px;
z-index: 100; /*设置浮动层次*/
overflow: visible;
position: fixed;
top: 50px; /* 其他浏览器下定位,在这里可设置坐标*/
_position: absolute; /*IE6 用absolute模拟fixed*/
_top: expression(documentElement.scrollTop + 50 + "px"); /*IE6 动态设置top位置*/
/* documentElement.scrollTop 设置浮动元素始终在浏览器最顶,可以加一个数值达到排版效果 */
background-color:#0000FF;
height: 31px;
}
.show{
position:absolute;
top:500px;
left:400px;
border:#ff0000 1px solid;
}
</
style
>
</
head
>
<
body
>
<
div
class
=
"jd_menu"
id
=
"topNav"
>1111</
div
>
<
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
class
=
"show"
>show</
div
>
</
body
>
</
html
>
只实现了垂直方向的fixed。若要实现水平方向的fixed,设置_left:expression(documentElement.scrollLeft + "px");
利用给<body>设置固定的背景,防止滚动条滚动时的闪动;如果<body>中要设置滚动的背景而产生冲突,可以把代码写在html选择器里面,如:
html {
_background-image: url(about:blank);
_background-attachment: fixed; /* prevent screen flash in IE6 */
}
body {
background-image: url(1.jpg);
background-attachment: scroll;
}
第二种方法 JavaScript
<!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"
/>
<
style
type
=
"text/css"
>
body{ margin:0px; padding:0px; font-size:12px; line-height:22px;}
p{ margin:0px; padding:36px;}
.float2{ position:absolute; padding:26px; border:#999999 3px solid; background-color:#3399FF; right:200px; top:200px;}
.fixed{ position:absolute; right:60px; top:100px; border:#666666 3px solid; background-color:#CCCCCC; padding:26px;}
</
style
>
<
script
language
=
"javascript"
type
=
"text/javascript"
>
window.onload=function(){
var n=100; //top值
var obj=document.getElementById("fixed"); //position:fixed对象
window.onscroll=function(){obj.style.top=(document.body.scrollTop||document.documentElement.scrollTop)+n+'px';}
window.onresize=function(){obj.style.top=(document.body.scrollTop||document.documentElement.scrollTop)+n+'px';}
}
</
script
>
<
title
>position_fixed测试</
title
>
</
head
>
<
body
>
<
p
>测试内容.........</
p
>
<
p
>测试内容.........</
p
>
<
p
>测试内容.........</
p
>
<
p
>测试内容.........</
p
>
<
p
>测试内容.........</
p
>
<
p
>测试内容.........</
p
>
<
p
>测试内容.........</
p
>
<
p
>测试内容.........</
p
>
<
p
>测试内容.........</
p
>
<
p
>测试内容.........</
p
>
<
p
>测试内容.........</
p
>
<
p
>测试内容.........</
p
>
<
p
>测试内容.........</
p
>
<
p
>测试内容.........</
p
>
<
p
>测试内容.........</
p
>
<
div
class
=
"float2"
>浮动的内容2</
div
>
<
div
class
=
"fixed"
id
=
"fixed"
>我的位置是固定的!拉动滚动条看效果。</
div
>
</
body
>
</
html
>
- IE6 fixed的完美解决方案
- ie6对postion:fixed的完美解决方案
- IE6不兼容position:fixed的解决方案
- 完美解决IE6不支持position:fixed的bug
- 完美解决IE6不支持position:fixed的bug
- 完美解决IE6不支持position:fixed的bug
- 完美解决IE6不支持position:fixed的bug
- 完美解决IE6不支持position:fixed的bug
- CSS 仿position:fixed做的对联,完美兼容IE6
- 完美解决IE6不支持position:fixed的bug
- 完美解决IE6不支持position:fixed的bug
- 超完美解决ie6不支持position: fixed的bug
- IE6不支持position:fixed解决方案
- ie6的position:fixed
- ie6下的fixed
- IE6支持position:fixed最完美方案
- IE6支持position:fixed最完美方案
- 完美解决IE6不支持position:fixed
- MyEclipse提示键配置、提示快捷键、提示背景色、关键字颜色、代码显示、编...
- 顺序栈
- MAYA MEL 基础
- Cannot make a static reference to the non-static method xxx()
- MYSQL5.5修改字符集报错:unknown variable 'default-character-set=utf8'
- IE6 fixed的完美解决方案
- Ubuntu 软件包管理详解
- jsp tomcat 配置错误页
- 自己写的.Net(C#)代码自动生成器
- Linux IP代理筛选系统(shell+proxy)
- Extjs-examples-app-feedviewer中的通过feed-proxy.php改写的feed-proxy.jsp
- 几种函数调用方式
- 当在浏览器中输入一个url后回车,后台发生了什么?比如输入url后,你看到了百度的首页,那么这一切是如何发生的呢
- CentOS 安装 PHP