我最近第一次玩Flexbox,总的来说,它绝对令人惊讶。但是我最近遇到了一个问题,我似乎不能给予正在 Package 的Flex项目任何垂直间距。
我试过使用:
align-content: space-between;
但这似乎没有任何作用。从我所做的阅读来看,这似乎只有在我的flex容器比其中包含的元素高的情况下才起作用(对吗?)如果是这样,那么我是否不必为我的flex-container设置一个高度,这似乎违背了使用flexbox的目的?
唯一的方法,我能想到的,使这项工作将是给予底部利润的元素内,但再次这似乎击败了目的。
希望我错过了一些相当明显的东西-这里有一个链接到一个codepen:http://codepen.io/lordchancellor/pen/pgMEPz
另外,这是我的代码:
于飞:
<div class="container">
<div class="col-sm-12">
<h1>Flexbox Wrapping</h1>
<div class="flexContainer">
<div class="flexLabel">This is a flex label</div>
<a class="btn btn-primary">Button 1</a>
<a class="btn btn-warning">Button 2</a>
<a class="btn btn-success">Button 3</a>
</div>
</div>
</div>
CSS:
.flexContainer {
display: flex;
flex-wrap: wrap;
align-items: center;
align-content: space-between;
justify-content: center;
}
.flexContainer .flexLabel {
flex-basis: 150px;
flex-shrink: 0;
}
编辑-只是要在这里添加一点更多的细节,因为我不确定我把它足够好。
在我的大型项目中,我有一些块级元素,它们使用Flexbox排列在一行中。但是,需要有一些响应,因为用户可能会缩小屏幕宽度。此时,我希望我的元素开始堆叠(因此换行)。但是,当元素开始堆叠时,它们都垂直接触,在那里我希望有间距。
它开始看起来像顶部和底部边距可能是唯一的方法来解决这个问题-然而,我想知道是否有一个以flexbox为中心的方法来实现这一点。
5条答案
按热度按时间xt0899hw1#
我有一个类似的问题,我用下面的 * 黑客 * 来解决这个问题。
对于弹性项目的顶行,正负边距抵消,对于后续行,它将添加行之间的边距(在本例中,行之间为
10px
)。lskq00tm2#
如果通过应用宽度强制换行,则可以像通常一样使用边距,而无需设置高度。
第一个
lnvxswe23#
行间距可以解决您的问题
yiytaume4#
这是因为您的flex内容没有一个高度来计算间距,所以目前,flex容器尽可能小。添加一个高度,它应该工作。
gab6jxml5#
另一个很有技巧的解决方案是给项目一个下边框: