【发布时间】:2011-08-26 12:56:13
【问题描述】:
我正在尝试制作一个简单的两列布局,但它似乎比我想象的要难..
它需要有:
- 固定宽度 300 像素左列
- 填满 页面的其余部分 - 不管是什么 窗口大小
- 两个列 div 都必须接触 页面底部
我遇到的问题是第三个要点,如果我使用浮点数,那么右列将始终包裹在左列下方,我无法让它们都与页面底部齐平!
我认为我需要浮动左列,因为将右列设置为 100%-300px 是不可能的。
有什么想法吗?谢谢!
【问题讨论】:
我正在尝试制作一个简单的两列布局,但它似乎比我想象的要难..
它需要有:
我遇到的问题是第三个要点,如果我使用浮点数,那么右列将始终包裹在左列下方,我无法让它们都与页面底部齐平!
我认为我需要浮动左列,因为将右列设置为 100%-300px 是不可能的。
有什么想法吗?谢谢!
【问题讨论】:
CSS:
#main, * html #left, * html #right { display:inline; height:100% }
#main { display:table }
#left, #right { display:table-cell }
#left { width:300px }
* html #left 用于 IE,所以它被强制使用display:inline; height:100%。 IE 好像不支持display:table-cell。
HTML:
<div id="main">
<div id="left"></div>
<div id="right"></div>
</div>
【讨论】:
试试这个 - 在 IE6+ 上测试并且可以工作。
<!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>
<title></title>
<style type="text/css">
html, body {height:100%;position:relative;margin:0;padding:0;}
.side {float:left;width:300px;height:100%;background:red;}
.main {margin-left:300px;background:blue;height:100%;}
</style>
</head>
<body>
<div class="side">
side content
</div>
<div class="main">
content
</div>
</body>
</html>
【讨论】: