作者热门文章
- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
如果 .right
元素拉伸(stretch)高度到任意大小,如何使 .left
内的 .item
元素平均填充垂直空间?
.container {
display: flex;
background: #ccc;
}
.left {
flex: 2;
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: stretch;
height: 100%;
}
.right {
flex: 1;
border: 1px solid #000;
}
.item {
border: 1px solid #000;
flex: 1 0 100%;
align-self: stretch;
}
<div class="container">
<div class="left">
<div class="item">
Item 1
</div>
<div class="item">
Item 2
</div>
</div>
<div class="right">
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
sanctus est Lorem ipsum dolor sit amet.
</div>
</div>
最佳答案
flex 容器的初始设置是 align-content: stretch
.
这意味着 flex 行将沿 cross axis 平均共享容器中的所有可用空间。 . (对主轴上所有元素的 flex: 1
类似效果。)
但是,当您为 flex 元素定义高度时当横轴为垂直时,或宽度当横轴为水平时,您将覆盖对齐内容
默认。
在您的行方向容器中,横轴是垂直的。因此,如果您删除 height: 100%
,那么 align-content: stretch
将起作用。
在此处了解有关横轴的 flex 对齐的更多信息:
在此处了解有关主轴的 flex 对齐的更多信息:
.container {
display: flex;
background: #ccc;
}
.left {
flex: 2;
display: flex;
flex-wrap: wrap; /* <--- this brings align-content into play */
/* flex-direction: row; <--- default setting; can be omitted */
/* align-items: stretch; <--- default setting; can be omitted */
/* height: 100%; */
}
.right {
flex: 1;
border: 1px solid #000;
}
.item {
border: 1px solid #000;
flex: 1 0 100%;
align-self: stretch;
}
<div class="container">
<div class="left">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
</div>
<div class="right">
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
sanctus est Lorem ipsum dolor sit amet.
</div>
</div>
关于html - 如何用 flexbox 填充垂直空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44048470/
我是一名优秀的程序员,十分优秀!