在我的网站上(使用 zenphoto 和 boostrap 3),我的 div.main 课程有问题。 http://test.vincentbourganel.fr
我有静态导航栏和底部的固定页脚。我希望 div.main 具有“其余部分的 100% 的高度”。当我的内容没有占用所有剩余高度时,它不起作用。
请参阅此页面作为示例: http ://test.vincentbourganel.fr/page/contact/
你能帮我解决这个问题吗
在我的网站上(使用 zenphoto 和 boostrap 3),我的 div.main 课程有问题。 http://test.vincentbourganel.fr
我有静态导航栏和底部的固定页脚。我希望 div.main 具有“其余部分的 100% 的高度”。当我的内容没有占用所有剩余高度时,它不起作用。
请参阅此页面作为示例: http ://test.vincentbourganel.fr/page/contact/
你能帮我解决这个问题吗
您可以通过使用来获取它flex
,我创建了一个box
类并分配flex
为属性,然后使用flex:1 0 0
到内容部分,我曾经position
将页脚留在底部,并分配overflow:auto
给内容部分 div。
下面我发布了一个工作示例来理解
弹性 -弹性指南
body {
margin: 0px;
padding: 0px;
}
.box {
display: flex;
flex-direction: column;
width: 100%;
min-height: 100vh;
}
.header {
background: tomato;
}
.content {
flex: 1 0 0;
background: green;
overflow: auto;
}
.footer {
background: blue;
position: relative;
}
<div class="box">
<div class="header">
Header
</div>
<div class="content">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nisi magnam iusto fugit illo omnis aperiam mollitia non fugiat, at in ratione harum ullam alias dicta, excepturi quod sed delectus veniam?<br><br> Lorem ipsum dolor sit amet, consectetur adipisicing
elit. Nisi magnam iusto fugit illo omnis aperiam mollitia non fugiat, at in ratione harum ullam alias dicta, excepturi quod sed delectus veniam?<br><br> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nisi magnam iusto fugit illo omnis aperiam
mollitia non fugiat, at in ratione harum ullam alias dicta, excepturi quod sed delectus veniam?<br><br> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nisi magnam iusto fugit illo omnis aperiam mollitia non fugiat, at in ratione harum ullam
alias dicta, excepturi quod sed delectus veniam?<br><br>
</div>
<div class="footer">
Footer
</div>
</div>
不确定你对这个解决方案的感受,我更像是一个后端开发人员而不是前端人员,但你总是可以做类似的事情
calc(100vh - (HEIGHT_OF_HEADER + BORDER) - (HEIGHT_OF_FOOTER + BORDER)
我不喜欢这个解决方案的唯一一点是,如果不对其中的高度进行硬编码,我想不出一种方法来做到这一点。我敢肯定有办法抓住它,但现在这应该让你朝着正确的方向前进。
我找到了一种在我的 js 文件中做我想做的事情的方法。我的 JS 代码修复了我的主 div 的最小高度以填充屏幕,即使主要内容很小。
这段代码可以很好地满足我的需要:
jQuery(document).ready(function() {
// full height for main div (windows height - "header" height - "footer" height)
$(window).resize(function() {
$('#main').css('min-height', $(window).height() - $('#menu').outerHeight() - $('#footer').outerHeight());
}).resize();
});
你可以在那里看到它:http: //test.vincentbourganel.fr/
您可以使用以下代码调整主 div 的高度。如果内容较少,它将全屏显示。
.main{
min-height: 100vh;
}