html - 使用 flexbox 和 100% 高度
问题描述
我正在使用 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% 到身体的高度。然而,这些似乎都没有奏效。我究竟做错了什么?
解决方案
由默认边距引起的顶部空白,您删除那些与
*{
margin:0;
}
由高度引起的底部的一个:100%;在主容器上看到它的显示是 flex 它将 100% 高度的视口高度,但由于有一个 h1 推动,#main 被推动,因此高度为 100% 的孩子也被推动,你可以删除#all 的高度 100% 或删除 h1。
我从#id 中删除了 100% 的高度,因为元素的高度应该由它的内容定义。
*{
margin:0;
box-sizing:border-box;
}
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;
}
<div id="all">
<h2>My page</h2>
<div id="main">
<div class="category">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</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>
推荐阅读
- excel - 在excel中提取两个字符串之间的名称
- laravel-8 - 使用 livewire-ui/modal 创建的模态不会关闭
- javascript - 智能合约测试 - “未捕获的类型错误:无法读取未定义的属性‘调用’”
- flutter - Flutter Riverpod 配置 StreamController 并在 HookWidget 中使用
- api - 基于客户端帖子大小的 Http 请求速度
- c++ - 具有 void 返回类型的函数从 int 到 int* 的无效转换错误
- python-3.x - 为什么 celery worker 通过添加并发参数来启动 2 进程
- c# - AxMSTSCLib 如何将相机从客户端重定向到远程会话?
- azure-devops - Azure DevOps Server 2019:自定义仪表板小部件不可用
- parameters - 为什么我的参数没有在快速报告中定义?