我有一个简单而愚蠢的问题。我试图在另一个div height:100%
下使用div而不产生溢出,只是适合身体的高度。
示例无效:https://jsfiddle.net/L38cea2s/1/
HTML:
<div id="top"></div>
<div id="left"></div>
<div id="right"></div>
&#13;
CSS:
html, body {
height:100%;
}
#top {
width:100%;
height:50px;
background-color:red;
}
#left {
width:70%;
height:100%;
background-color:green;
float:left;
display:block;
}
#right {
width:30%;
height:100%;
background-color:yellow;
float:right;
display:block;
position:absolute;
}
&#13;
我不知道为什么在jsfiddle上我的div不会占据宽度的100%。但正如你在示例中看到的那样,溢出是因为在两个div之上还有另一个div。我不想要overflow:hidden
。
谢谢!
编辑:
我正在寻找这样的事情:(任何div都落后于任何div)
答案 0 :(得分:1)
这个jQuery可能有帮助
var body = $('body').height();
var top = $('#top').height();
var workoutheight = body - top;
$('#left').css('height',workoutheight);
$('#right').css('height',workoutheight);
答案 1 :(得分:1)
我做了一个仅限CSS的解决方案
从JSFiddle获取更新的标记
CSS
body {
margin: 0;
}
.sidebar {
width: 20%;
float: left;
background: #B2B200;
height: 100vh;
}
.main-content {
width: 80%;
float: left;
height: 100%;
}
.top {
height: 20%;
width: 100%;
background: #26FF5C;
height: 20vh;
}
.left {
width: 70%;
float: left;
background: #4DFFFF;
height: 80vh;
}
.right {
width: 30%;
float: left;
background: #8500B2;
height: 80vh;
}
答案 2 :(得分:1)
您也可以在CSS中使用calc
...示例:
#left {
height: 100vh;
width: 300px;
float:left;
}
#top {
height: 45px;
width: calc(100vw - 300px); // or calc(100% - 300px)
margin: 0 0 0 300px;
}
#right {
height: calc(100vh - 45px);
width: 30%;
float: right;
}
#middle {
height: calc(100vh - 45px);
margin: 0 30% 0 300px;
}
答案 3 :(得分:0)
最好是在考虑如何将所有内容堆叠在一起时使用分层。我在这里更新了你的jsFiddle。
https://jsfiddle.net/L38cea2s/8/
html, body {
height:100%;
margin: 0;
}
#top {
width:100%;
height:50px;
top: 0;
background-color:red;
position: absolute;
}
#left {
width:70%;
height:100%;
top: 0;
background-color:green;
position: absolute;
}
#right {
width:30%;
height:100%;
top: 0;
background-color:yellow;
position: absolute;
}