Percentage #39;min-height#39; works only when element has indirect parent with #39;display: flex#39;(仅当元素具有间接父级且显示:FLEX#39;时,百分比#39;最小高度#39;才起作用。)
问题描述
无法理解为什么仅当#main获得display:flex规则时,#inner元素才有其高度。
以下是我的代码:
#main {
display: flex
}
#wrapper {
background-color: violet
}
.content {
font-size: 2em
}
#inner {
min-height: 50%;
background-color: green
}
<div id="main">
<div id="wrapper">
<div class="content">Lorem Ipsum is simply dummy text of the printing and typesetting industry. </div>
<div class="content">It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</div>
<div class="content">It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</div>
<div id="inner"></div>
</div>
</div>
如果删除display: flex#inner的规则高度等于0:
#main {
/* display: flex */
}
#wrapper {
background-color: violet
}
.content {
font-size: 2em
}
#inner {
min-height: 50%;
background-color: green
}
<div id="main">
<div id="wrapper">
<div class="content">Lorem Ipsum is simply dummy text of the printing and typesetting industry. </div>
<div class="content">It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</div>
<div class="content">It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</div>
<div id="inner"></div>
</div>
</div>
还有一件事。
当#inner内部有内容时,其高度合计为#main高度。
Take a look to the screenshot
推荐答案
您面临的是与FlexBox相关的stretch对齐结果。默认情况下,弹性项处于拉伸状态,因此以下情况适用:
为此,如果弹性项有
align-self: stretch,请重做其内容的布局,将此已用大小视为其确定的交叉大小,以便可以解析百分比大小的子项。ref
min-heightWITH PENTERATION正在运行。如果更改对齐方式并保留display:flex,它将不起作用
#main {
display: flex
}
#wrapper {
background-color: violet;
align-self:flex-start;
}
.content {
font-size: 2em
}
#inner {
min-height: 50%;
background-color: green
}
<div id="main">
<div id="wrapper">
<div class="content">Lorem Ipsum is simply dummy text of the printing and typesetting industry. </div>
<div class="content">It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</div>
<div class="content">It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</div>
<div id="inner"></div>
</div>
</div>
您还应该注意到,您的第一个示例中存在溢出,因为百分比与内容相关,所以您要添加的任何内容都多于内容本身。
添加边框以注意这一点
#main {
display: flex
}
#wrapper {
background-color: violet;
border:5px solid red;
}
.content {
font-size: 2em
}
#inner {
min-height: 50%;
background-color: green
}
<div id="main">
<div id="wrapper">
<div class="content">Lorem Ipsum is simply dummy text of the printing and typesetting industry. </div>
<div class="content">It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</div>
<div class="content">It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</div>
<div id="inner"></div>
</div>
</div>
CSS网格中也会发生类似的行为:Why does `height: 100%` value 'work' for child tags of grid-items?
这篇关于仅当元素具有间接父级且显示:FLEX';时,百分比';最小高度';才起作用。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:仅当元素具有间接父级且显示:FLEX';时,百分比';最小高度';才起作用。
基础教程推荐
- CORS:当凭据标志为真时,无法在 Access-Control-Allow-Origin 中使用通配符 2022-01-01
- 即使每次插入第一个输入的值不同,第二个输入仍显示相同的输入值 2022-01-01
- HTML5 画布调整为父级 2022-01-01
- 逻辑运算符 ||在 javascript 中,0 代表 Boolean false? 2022-01-01
- 带角度的选项卡:仅使用 $http 在单击时加载选项卡 2022-01-01
- 最佳动态 JavaScript/JQuery 网格 2022-01-01
- 当木偶师打开Chrome时,不能使用Chrome扩展 2022-01-01
- 从快速中间件中排除路由 2022-01-01
- 在 Javascript 中使用 Fetch API 上传文件并显示进度 2022-01-01
- 使用 jQuery 在悬停时交换 DIV 类 2022-01-01
