我想要一个使用 CSS 浮动的漂亮的 2 列布局。
Column#1 160 px Column#2 100%(即剩余空间)。
我想先放置 Col#2 的 div,所以我的布局如下所示:
<div id="header"></div>
<div id="content">
<div id="col2"></div>
<div id="col1"></div>
</div>
<div id="footer"></div>
什么必须得到这个效果?
以上都行不通。
div#col2 {
width: 160px;
float: left;
position: relative;
}
div#col1 {
width:100%;
margin-left: 160px;
}
假设第 2 列应显示为左侧边栏,第 1 列作为主要内容。
我认为你可以做这样的事情。
div#col2 {
padding-left: 160px;
width: 100%;
}
div#col1 {
float: left;
width: 160px;
}
这依赖于#col1
来之前#col2
,这可能使它无法使用。
这不会,但依赖于#col1
更长的时间:
#content {
position: relative;
}
div#col2 {
width: 160px;
position: absolute;
}
div#col1 {
width: 100%;
margin-left: 160px;
}
这将使页脚保持在原位。
div#footer {
clear: both;
}
您必须在第一列上使用 float:left 并在第二列上使用 float:right
虽然这个问题是多年前的问题,但我为任何未来的参考和类似案例提供了这个有用的答案。
将#col1
before#col2
放入标记中,您可以将其浮动到右侧,以防您有 LTR lauout(如果您有 RTL 布局,则浮动到左侧)并给出另一个 col overflow: hidden
。
请注意,父 ( #content
) 也应该有overflow: hidden
:
#content{
overflow: hidden;
padding: 20px 0;
height: 100px;
background-color: #cdeecd;
}
#content #col1{
float: right;
width: 160px;
height: 100px;
background-color: #eecdcd;
}
#content #col2{
height: 100px;
overflow: hidden;
background-color: #cdcdee;
}
<div id="content">
<div id="col1"></div>
<div id="col2"></div>
</div>