关于 IE 中 body 的 overflow: hidden 的 fix

nchen123 2005-02-22 02:50:41
今天工作中实际碰到的问题。我写在这里了:

http://www.cnblogs.com/rchen/archive/2005/02/22/107426.html

最终的文档是:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="Roger Chen">
<meta name="keywords" content="">
<meta name="description" content="">
<style type="text/css">
html {/*Browser Hack proposed by Tantek Celik to correct IE5 box model misinterpretation*/
overflow: hidden; height: 100%; margin: 0; padding: 0;}
body {height: 99%; margin: 0; border: 0; padding: .5%; overflow: hidden;}
#test {overflow: hidden;}
#test {width: 300px; height: 100px; margin: auto; border: 1px solid green;}
</style>
</head>
<body>
a<br/>a<br/>
<div id="test">this is a test.<br/>this is a test.<br/>this is a test.<br/>this is a test.<br/>this is a test.<br/>this is a test.<br/>this is a test.<br/>this is a test.<br/>this is a test.<br/>this is a test.<br/>this is a test.<br/>this is a test.<br/>this is a test.<br/>this is a test.<br/>this is a test.<br/>this is a test.<br/>this is a test.<br/>this is a test.<br/>this is a test.<br/>this is a test.<br/></div>
a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>a<br/>
</body>
</html>


从这个可以看到在兼容标准的模式下,IE 中仅仅是 body 元素有 bug. 归根到底是 IE 对盒模型解释错误的表现之一.
...全文
230 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dsclub 2005-02-28
  • 打赏
  • 举报
回复
就是居中么?

body{
text-align:center;
}

#something{
width:300px;
height:120px;
margin-right:auto;
margin-left:auto;
}

这样在FireFox和IE下都兼容的吧
潜水的鱼 2005-02-28
  • 打赏
  • 举报
回复
大部份人都用DW + table

个人认为是由市场决定的, 因为不是每个网站都是门户网站;没有那么多的钱去烧;
潜水的鱼 2005-02-28
  • 打赏
  • 举报
回复
楼上, 也太小瞧人了吧, DW生成 css 代码也是不错的;
Minisheep 2005-02-27
  • 打赏
  • 举报
回复
因为大部分人都是在dreamweaver里用table排版的,估计连CSS是什么他们也不知道,更不用说overflow是干什么的。所以IE有什么BUG当然也不会关心了。
meizz 2005-02-26
  • 打赏
  • 举报
回复
哟, 兄弟, 你还单独开贴啦?
xxrl 2005-02-26
  • 打赏
  • 举报
回复
:))))))))))
潜水的鱼 2005-02-26
  • 打赏
  • 举报
回复
^_^
nchen123 2005-02-26
  • 打赏
  • 举报
回复
呵呵, 发帖玩玩。 好久没在这里发帖了阿
不过好像关心的人很少 :(
nchen123 2005-02-22
  • 打赏
  • 举报
回复
刚才我发现这个道理同样可以解决 body 里放一个高为 100% 的表格不能充满页面的问题。

类似这样的:

<table height="100%" bgcolor="green">
<tr>
<td>test</td>
</tr>
</table>

修正的方法完全一样。
Minisheep 2005-02-22
  • 打赏
  • 举报
回复
IE嘛,BUG多的是,多一个少一个又不算什么。
感觉代码越乱,IE越能理解。代码规范一点,IE就出错
带颜色的欢迎窗口 <script language="javascript"> var IE5=(document.getElementById && document.all)? true : false; var W3C=(document.getElementById)? true: false; var currIDb=null, currIDs=null, xoff=0, yoff=0; zctr=0; totz=0; function trackmouse(evt){ if((currIDb!=null) && (currIDs!=null)){ var x=(IE5)? event.clientX+document.body.scrollLeft : evt.pageX; var y=(IE5)? event.clientY+document.body.scrollTop : evt.pageY; currIDb.style.left=x+xoff+'px'; currIDs.style.left=x+xoff+10+'px'; currIDb.style.top=y+yoff+'px'; currIDs.style.top=y+yoff+10+'px'; return false; }} function stopdrag(){ currIDb=null; currIDs=null; NS6bugfix(); } function grab_id(evt){ xoff=parseInt(this.IDb.style.left)-((IE5)? event.clientX+document.body.scrollLeft : evt.pageX); yoff=parseInt(this.IDb.style.top)-((IE5)? event.clientY+document.body.scrollTop : evt.pageY); currIDb=this.IDb; currIDs=this.IDs; } function NS6bugfix(){ if(!IE5){ self.resizeBy(0,1); self.resizeBy(0,-1); }} function incrzindex(){ zctr=zctr+2; this.subb.style.zIndex=zctr; this.subs.style.zIndex=zctr-1; } function createPopup(id, title, width, height, x , y , isdraggable, boxcolor, barcolor, shadowcolor, text, textcolor, textptsize, textfamily ){ if(W3C){ zctr+=2; totz=zctr; var txt=''; txt+='
'; txt+='
'; txt+='
'+title+'
'; txt+='
'+text+'
'; document.write(txt); this.IDh=document.getElementById(id+'_h'); this.IDh.IDb=document.getElementById(id+'_b'); this.IDh.IDs=document.getElementById(id+'_s'); this.IDh.IDb.subs=this.IDh.IDs; this.IDh.IDb.subb=this.IDh.IDb; this.IDh.IDb.IDov=document.getElementById(id+'_ov'); if(IE5){ this.IDh.IDb.IDov.style.width=width-6; this.IDh.IDb.IDov.style.height=height-22; this.IDh.IDb.IDov.style.scrollbarBaseColor=boxcolor; this.IDh.IDb.IDov.style.overflow="auto"; }else{ this.IDh.IDs.style.MozOpacity=.5; } this.IDh.IDb.onmousedown=incrzindex; if(isdraggable){ this.IDh.onmousedown=grab_id; this.IDh.onmouseup=stopdrag; }}} if(W3C)document.onmousemove=trackmouse; if(!IE5 && W3C)window.onload=NS6bugfix; createPopup( 'box3', '欢迎光临' , 288, 90, 275, 155, true, 'FF9966' , '000000' , '800000' , '欢迎光临网页特效代码 网络因你而精彩' , 'FFFFFF' , 9 , '宋体');

61,112

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧