html - 较大的 flex 子项导致先前兄弟的填充被忽略
问题描述
所以我有一个 flexbox,但我无法理解为什么当第二个孩子的内容溢出时第一个孩子的填充会被忽略。
这是第二个孩子的内容没有溢出的例子。
body {
padding: 0;
margin: 0;
}
.flex {
display: flex;
flex-direction: column;
width: 100vw;
height: 100vh;
}
.title {
background-color: green;
border-bottom: 10px solid black;
display: flex;
height: 50px;
padding-bottom: 40px;
}
.body {
background-color: blue;
flex: 1;
}
.content {
background-color: red;
height: 10vh;
}
<div class="flex">
<div class="title">
</div>
<div class="body">
<div class="content">
</div>
</div>
</div>
这是一个孩子的内容溢出的例子
body {
padding: 0;
margin: 0;
}
.flex {
display: flex;
flex-direction: column;
width: 100vw;
height: 100vh;
}
.title {
background-color: green;
border-bottom: 10px solid black;
display: flex;
height: 50px;
padding-bottom: 40px;
}
.body {
background-color: blue;
flex: 1;
}
.content {
background-color: red;
height: 100vh;
}
<div class="flex">
<div class="title">
</div>
<div class="body">
<div class="content">
</div>
</div>
</div>
您可以在第二个示例中看到标题的高度大大降低了。
解决方案
这是因为您使用的是 flex css,它试图容纳所有的孩子。如果标题无论如何都不会改变大小,则需要将其 flex-shrink 设置为 0。
所以尝试将css更改为:
.title {
background-color: green;
border-bottom: 10px solid black;
display: flex;
height: 50px;
padding-bottom: 40px;
flex-shrink: 0;
}
推荐阅读
- django - 如何在端口 6379 上启动 Redis 服务器
- delphi - 在子类中添加重载
- python - 为什么我需要单击两次才能退出我的 python 程序?
- blender - 如何在搅拌机中将立方体的原点设置为其顶点?
- python - 读取数字数据文件并同时分配给每个项目
- groovy - XmlSlurper 不返回值
- android - D8 编译到 API 级别 21 及以上时不支持 main-dex 输入和输出
- sql - 使用 FOR JSON PATH 时解析 NVARCHAR 列内的 JSON 文本
- javascript - 单击单个元素时多选js引发也checkall
- ckeditor - CKEditor 4 如何禁用图像上传弹出窗口?