我希望div容器位于我页面的最底部,但是使用position:absolute
似乎容器位于距离顶部n个像素的位置。如果我将HTML标记设置为position:relative
,则按预期工作。
将HTML标记设置为position:relative
html {
background: #FAFAFA;
height: 100%;
}
body {
padding: 0;
margin: 0;
line-height: 1.4;
color: #CCC;
font-family: 'Open Sans', Helvetica, Arial;
font-size: 18px;
min-height: 100%;
overflow-y: scroll;
}
#sidebar_bottom {
background: none repeat scroll 0 0 #313131;
bottom: 0;
left: 0;
overflow: auto;
position: absolute;
width: 100%;
min-height: 150px;
}
p {
padding: 4px 8px;
margin: 0
}
<div id="page_wrapper">
<div id="main">
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore
eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh
euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate
velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis
eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim
ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.</p>
</div>
<div id="sidebar_bottom">
<p>This container should be at the very bottom, not here!</p>
</div>
</div>
答案 0 :(得分:2)
这是因为HTML和BODY具有您网页上内容的大小。当你只有一个div时 - HTML被拉伸到那个大小。
将此添加到您的CSS:
html { height:100%; }
body { min-height:100%; }
这将使您的html成为浏览器视口的大小,并将主体设置为至少该视口的高度。 然后使用
再试一次#yourdiv {
position:absolute;
bottom:0;
}
你的div上的
在看到jsFiddle之后,如果#footer元素是必须要结束的元素,请执行以下操作:
#page_wrapper {
position:relative;
}
#footer {
position:absolute;
}
要定位的元素的容器必须始终具有静态以外的设置位置。这是一般规则。
答案 1 :(得分:2)
在小提琴中,body
未定位。因此,绝对定位的元素相对于html
定位,而不是body
。
html
高100%,与窗口一样高。
解决方案:提供正文position:relative
。
答案 2 :(得分:-1)
这取决于,如果您将身体标签相对于100%的宽度和100%的高度定位,您将能够使用绝对定位而没有任何风险。
body(position:absolute}
#Container {position:absolute; bottom:0;}
为了解释绝对和相对之间的区别,想象一个块,如果它是相对的,那么它内部的绝对div将使用相对div作为顶部和左侧定位的容器。