IE6中的HTML布局问题,请帮忙

时间:2010-10-26 03:32:12

标签: html css

您好我有一个HTML文档如下

<!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" />
<link rel="stylesheet" href="style/styles.css" type="text/css" />
<title>::Model::</title>
</head>
<body>
<div id="wrapper">

<div id="header">
header
</div>

<div id="main">


<div id="left">


text<br>
text<br>
text<br>
text<br>
text<br>
text<br>
text<br>
text<br>
text<br>
text<br>
text<br>
text<br>
text<br>

</div>
<div id="right">

text<br>
text<br>

</div>

</div>

<div id="footer">
footer
</div>

</div>
</body>
</html>

我的CSS文件是

#wrapper{
    margin:0px auto;
    width:1000px;
}

#header{
height:50px;
border:#CCCCCC solid 1px;
margin:2px;
padding:5px;
}

#main{
border:#990000 solid 1px;
margin:2px;
padding:5px;
overflow:auto;
}

#footer{
height:100px;
border:#CCCCCC solid 1px;
margin:2px;
padding:5px;
}

#left{
border:#CCCCCC solid 1px;
width:640px;
padding:4px;
float:left;

margin-right:2px;

}
#right{
float:right;
padding:4px;

border:#CCCCCC solid 1px;
width:320px;


}

除了IE6之外,这在所有浏览中都很好用,主要区域应该扩展为动态内容。

感谢您的帮助

5 个答案:

答案 0 :(得分:2)

您应该尝试validating您的网页。你给它一个xhtml文档类型,但你绝对不会写有效的xhtml。像这样的无效代码经常会在不同的浏览器中引起故障,但在IE6的情况下它可能无法正常工作。

答案 1 :(得分:1)

尝试将height: 100%添加到#main - 这是一个已知的黑客行为,可以正确地呈现overflow: auto

答案 2 :(得分:0)

如果我没记错的话,如果要使用溢出方法清除它,IE需要在div#main上有宽度。

答案 3 :(得分:0)

向右浮动并向左浮动不会导致包装物向下延伸。

地点&lt; div style =“clear:both”&gt;&lt; / div&gt;

在div id =“right”的结束标记之后,它会将包装器和主要div拉下来。

答案 4 :(得分:0)

这是我使用的黑客攻击。请记住,这是完全黑客攻击,不应替代声音css。将其粘贴到页面底部。

<script type="text/javascript" language="javascript">

function setMainHeight(){
    var main = document.getElementById("main");
    var left = document.getElementById("left");
    var right = document.getElementById("right");

    main.style.height = (left.offsetHeight >= right.offsetHeight) ? left.offsetHeight + 'px' : right.offsetHeight + 'px';

}
setMainHeight();

</script>