我有一个传统的3列布局:导航,内容和侧边栏。
内容和侧边栏都有背景颜色,无论内容多少,都需要始终覆盖100%的可见高度。换句话说,当向下滚动或调整页面大小时,背景应该保留在那里。
请参阅此jsfiddle以供参考:http://jsfiddle.net/thv20/acJVw/1/
问题是当您向下滚动或调整大小时,背景会中断。我怎样才能解决这个问题?我已经看到了使用min-height: 100%
的建议,但我无法让它发挥作用。
答案 0 :(得分:2)
从身体标签上移除“身高:100%”,因为这会破坏您的布局。
相反,请使用侧栏上的position: absolute
并将其定位top:0
bottom: 0
,因为这会使其高度“100%”。同时设置right: 0
将其放置在容器div的右侧(这样可以安全地设置宽度)。
#container {
position:relative; /*add this to use position:absolute on child element */
overflow: hidden; /*add this to clear your floats*/
width: 600px;
margin: 0 auto;
border: 1px solid black
}
nav, section{
float: left;
width: 200px;
}
section {
background: red;
}
sidebar {
background: green;
position:absolute; /*add this and positions below */
top:0;
bottom:0;
right:0;
}
JSFiddle:http://jsfiddle.net/acJVw/6/
答案 1 :(得分:0)
根据背景的复杂程度,您可以使用具有页面宽度的背景图像,并使用您喜欢的列颜色,将其设置为页面的背景并重复它(Faux Columns by Dan Cederholm)
您也可以绝对定位列,并将top:
和bottom:
设置为0
,但这只是我的头脑。不过,我不知道这是否适用于浏览器。
.sidebar
{
position: absolute;
widht: 200px;
top: 0;
bottom: 0;
right: 0;
}
答案 2 :(得分:0)
如果我理解正确,你想要的是在窗口中固定的背景颜色,滚动时不会移动。这是你想要的吗?
如果是的话,我建议您在CSS文件中创建一个div分类'what':
div.whatever
{
position:fixed;
z-index:-1;
background-color:red;
height:100%;
top:0;
left:/*you choose */
}
答案 3 :(得分:0)
黑客攻击:
如果你做
body, html, #container, nav, section, sidebar {height:1000%;}
然后它似乎工作,但这完全取决于用户屏幕的分辨率。