使内容最小高度填满屏幕

时间:2016-09-16 09:17:32

标签: html css

作为一个例子,我做了一个小提琴: https://jsfiddle.net/L7mwpzux/3/

如何让div .container最小化填充屏幕? 因此,当几乎没有内容时,它仍会填满屏幕。

结帐购物车为空时显示的页面。内容太薄,因此屏幕内容不完整。

P.S。我不是在寻找一个假设页眉或页脚具有静态高度的答案。我希望能够在页眉或页脚的高度可变的情况下使用它。

另外,我会喜欢CSS解决方案,所以没有JavaScript或jQuery

2 个答案:

答案 0 :(得分:6)

您可以使用calc()并设置100vh - height of header,同时添加box-sizing: border-box以保持填充。



* {
  box-sizing: border-box;
}
body,
html {
  margin: 0;
  padding: 0;
}
header {
  height: 200px;
  background-color: blue;
  width: 100%;
}
.container {
  padding: 50px;
  min-height: calc(100vh - 200px);
}
footer {
  width: 100%;
  height: 200px;
  background-color: #333;
}

<header>
</header>

<div class="container">
  small text
</div>

<footer>
</footer>
&#13;
&#13;
&#13;

其他方法是使用Flexbox并在主体上设置display: flex,在这种情况下是min-height: 100vh的父元素,然后在flex: 1上设置.container所以它需要剩余的自由高度。

&#13;
&#13;
* {
  box-sizing: border-box;
}
body,
html {
  margin: 0;
  padding: 0;
}
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
header {
  height: 100px;
  background-color: blue;
}
.container {
  padding: 50px;
  flex: 1;
}
footer {
  height: 100px;
  background-color: #333;
}
&#13;
<header>
</header>

<div class="container">
  small text
</div>

<footer>
</footer>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

试试这个

min-height: calc(100vh - 400px);

这里是小提琴https://jsfiddle.net/L7mwpzux/1/