在绝对div上设置高度100%

Nwo*_*rks 40 html css absolute

我正面临着覆盖100%高度div的问题.我可以使用固定的位置来解决封面,但这不是我想要的,因为你应该能够向下滚动'封面'>所以分辨率低于我的人可以看到整个内容.

代码示例:

HTML

<body>
<div>Overlay example text</div>
</body>
Run Code Online (Sandbox Code Playgroud)

CSS

body {
    float: left;
    height: 3000px;
    width: 100%;
}
body div {
    position: absolute;
    height: 100%;
    width: 100%;
    background-color: yellow;
}
Run Code Online (Sandbox Code Playgroud)

问题: div的高度100%只包含100%的webbrowser/viewport,但我希望它覆盖整个身体.

提前致谢 :)

Pet*_*ete 50

尝试添加

position:relative
Run Code Online (Sandbox Code Playgroud)

你的体型.每当绝对定位任何东西时,您需要将其中一个父容器定位为相对位置,因为这将使项目绝对定位到相对的父容器.

因为你没有相关元素,所以css不会知道div绝对位置是什么,因此不知道该取100%的高度

  • 对于阅读的任何人:我认为这应该是正确的答案(并且有更高的upvote),因为它是第一个正确提供解决方案并且它为解决方案添加了解释而不仅仅是代码粘贴. (7认同)
  • 浮动左边是原始代码并没有区别:http://jsfiddle.net/rvKPq/3/ (3认同)

ash*_*ley 45

http://jsbin.com/ubalax/1/edit.您可以在此处查看结果

body {
    position: relative;
    float: left;
    height: 3000px;
    width: 100%;
}
body div {
    position: absolute;
    height: 100%;
    width: 100%;
    top:0;
    left:0;
    background-color: yellow;
}
Run Code Online (Sandbox Code Playgroud)

  • 不是"浮动"会产生任何不同,它是"位置:相对;".`position:absolute;`根据相对父母的作品,这就是为什么这样做的原因."绝对定位的元素相对于最近的定位祖先(非静态)定位." 更多信息:https://developer.mozilla.org/en-US/docs/Web/CSS/position (16认同)
  • 好吧,所以每个人都在前往正确的答案,但那个浮动:左和位置:身体上的亲戚解决了它.谢谢! (4认同)
  • 我知道为什么会这样有效,但确实如此......当你发现一个物理停止运作的现实时,这就是这些悲伤的时刻之一. (4认同)
  • 拥有`3000px`是没有意义的,因为它会增加滚动和不必要的空间,修复? (4认同)

Jer*_*nce 11

很少有答案给出了高度和宽度100%的解决方案,但我建议你不要在css中使用百分比,使用顶部/底部和左/右定位.

这是一种更好的方法,可以控制保证金.

这是代码:

body {
    position: relative;
    height: 3000px;
}
body div {

    top:0px;
    bottom: 0px;
    right: 0px;
    left:0px;
    background-color: yellow;
    position: absolute;
}
Run Code Online (Sandbox Code Playgroud)


Kev*_*man 6

完全拉伸(水平/垂直)

接受的答案很棒。只是想为来这里的其他人指出一些事情。在这些情况下,边距是不必要的。如果您想要具有特定“边距”的居中布局,您可以将它们添加到右侧和左侧,如下所示:

.stretched {
  position: absolute;
  right: 50px;  top: 0;  bottom: 0; left: 50px;
  margin: auto;
}
Run Code Online (Sandbox Code Playgroud)

这非常有用。

div 居中(垂直/水平)

作为奖励,绝对居中可用于获得极其简单的居中:

.centered {
  height: 100px;  width: 100px;  
  right: 0;  top: 0;  bottom: 0; left: 0;
  margin: auto;
  position: absolute;
}
Run Code Online (Sandbox Code Playgroud)


小智 5

代替使用bodyhtml对我有用:

html {
   min-height:100%;
   position: relative;
}

div {
   position: absolute;

   top: 0px;
   bottom: 0px;
   right: 0px;
   left: 0px;
}
Run Code Online (Sandbox Code Playgroud)