【发布时间】:2013-11-24 05:10:56
【问题描述】:
我正在努力掌握 CSS(这是我过去试图避免的开发方面的一个方面),但我无法理解这里发生的事情。
目标
- 具有 2 列布局,始终至少为整页高度,但如果内容会增加 规定
编辑:两列的高度也应该相等,即都长到最大。
问题
当内容小于一页时,它会按照我的意图保持全高。然而,在像下面的小提琴这样的情况下,内容比页面长,而页面滚动时,背景不会随着内容流动。
JSFiddle http://jsfiddle.net/tDSAg/
HTML
<header>
<div class="header-inner">Header</div>
</header>
<div id="outer">
<div class="col1">
<p>Start</p>
<p>Col1</p>
<p>End</p>
</div>
<div class="col2">
<p>Start</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>Col2</p>
<p>End</p>
</div>
CSS
html, body
{
height: 100%;
}
#outer
{
min-height: 100%;
background-color: red;
height: 100%;
width: 1000px;
margin-left: auto;
margin-right: auto;
}
.col1
{
background-color: green;
width: 220px;
float: left;
min-height: 100%;
height: 100%;
margin-right: 10px;
}
.col2
{
background-color: aliceblue;
width: 770px;
float: left;
min-height: 100%;
height: 100%;
}
header {
background-color: orange;
}
.header-inner {
width: 1000px;
margin-left: auto;
margin-right: auto;
}
【问题讨论】:
-
您是否在容器上使用 clearfix?
-
我不是(无论 clearfix 是什么!) - @pallandt - 恐怕这只是作为我发布的小提琴的欺骗加载,没有修改?
-
@glosrob 链接错误,抱歉。试试jsfiddle.net/FB5kU
-
clearfix 只会扩展您的第二列,只是意识到您希望两列均等地扩展。您可以使用 JS 脚本来实现,或者尝试仅通过 CSS 来实现。例如:stackoverflow.com/questions/14763363/…
-
对于基于 javascript + jquery 的解决方案,请查看:jainaewen.com/files/javascript/jquery/…