我有以下div
<div class="top">
<div class="inner1"></div>
<div class="inner2"></div>
<div class="inner3"></div>
</div>
这是CSS:
.top {
height: 100vh;
}
.div1 {
min-height: 215px;
box-sizing: border-box;
height: 30vh;
}
.div2 {
box-sizing: border-box;
min-height: calc(100vh - 30vh - 265px);
padding-top: 2.5em;
margin-top: 0;
display: table;
}
.div3 {
min-height: 265px;
box-sizing: border-box;
background: white;
display: table;
width: 100%;
font-weight: 700;
padding-bottom: 42px;
}
我不想使用calc(100vh - 30vh - 265px)来设置div 2的最小高度。我怎么能拥有它以便它需要剩余的高度(意味着div2 height = 100vh - div1 height - div2身高。
我猜flex在这里很有用,但我不太清楚如何使用它。任何帮助将不胜感激。
感谢?
在将此标记为重复之前,请注意:我尝试使用flex,但在IE11中效果不佳。
答案 0 :(得分:0)
不知道这是不是最好的主意,但为了克服跨浏览器限制,我通常会使用javascript来重新计算。我编写了javascript函数,然后在窗口调整大小和加载时触发它。
// some jQuery
function adjustHeight() {
var fullHeight = $(window).height();
var neededHeight = fullHeight - fullHeight*0.3 - 263;
$('.div2').css('min-height', neededHeight + 'px');
}
$(document).ready(function(){ adjustHeight(); });
&#13;
答案 1 :(得分:0)
在flex,display:table属性也可以帮助旧版浏览器。
在这种情况下,高度变为min-height
.top {
height: 100vh;
display: table;
width: 100%;
}
.top>div {
display: table-row;
}
.inner1 {
min-height: 215px;/* becomes useless */
box-sizing: border-box;
height: 30vh;
background: tomato;
}
.inner2 {
box-sizing: border-box;
padding-top: 2.5em;/* i'll get squeezed here */
margin-top: 0;/* useless, border-spacing is to be used */
background: turquoise;
}
.inner3 {
height: 265px;
box-sizing: border-box;
background: yellow;
display: table;
width: 100%;
font-weight: 700;
padding-bottom: 42px;/* ? :) */
}
&#13;
<div class="top">
<div class="inner1">1</div>
<div class="inner2">run me in full page to see how i behave :)</div>
<div class="inner3">3</div>
</div>
&#13;