【发布时间】:2018-05-05 06:37:35
【问题描述】:
我正在使用 flexbox 并试图让六个 div 占据页面的剩余高度。我有两个问题:
- 我无法让六个 div 占据剩余的高度,但不能再增加了。
- 页面顶部出现白边
我的代码如下所示:
<!DOCTYPE html>
<html>
<style>
html, body {
height: 100%;
margin: 0px;
padding: 0px;
}
h2 {
text-align: center;
}
#all {
background-color: red;
width: 100%;
height: 100%;
margin: 0px;
padding: 0px;
}
#main {
display: flex;
width: 80%;
margin: 10px auto;
height: 100%;
}
.category {
border: solid black 2px;
flex: 1;
flex-grow: 1;
margin: 0px 20px;
height: 100%;
text-align: center;
font-size: 1.2em;
font-weight: bold;
}
</style>
<div id="all">
<h2>My page</h2>
<div id="main">
<div class="category">Category 1</div>
<div class="category">Category 2</div>
<div class="category">Category 3</div>
<div class="category">Category 4</div>
<div class="category">Category 5</div>
<div class="category">Category 6</div>
</div>
</div>
</html>
我尝试过使用各种样式,例如 flex-grow、stretch 和 100% 到身体的高度。然而,这些似乎都没有奏效。我做错了什么?
【问题讨论】:
-
顶部的空白是
h2的边距造成的 -
嗯,您似乎是对的,但是当 h2 包含在 div 中时,为什么会出现这种情况?似乎 h2 的边距出现在 div 之外。如果我删除 div,似乎还有很小的余量。
-
边距就是这样工作的。
-
所以您是说子对象的边距出现在它们包含的父 div 之外?
-
它们影响父元素的位置。