是的,以前有人问过这个问题,我在网上的例子中见过很多次,但我在尝试中肯定遗漏了一些东西:
main.wrap {
display: flex;
flex-wrap: wrap;
/*flex-direction: row; the default */
gap: 10%;
}<main class="wrap">
<div class="column">
<h3>Wrap with gap</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent tincidunt imperdiet justo, ac rhoncus urna sollicitudin vitae. Duis eu dolor eu dui tempor cursus. </p>
</div>
<div class="sidebar">
<h3>Sidebar</h3>
<p>Nullam posuere commodo quam eget ultricies. Duis luctus, mauris at iaculis tempor. </p>
</div>
</main>
默认情况下,no-wrap工作正常。
请看这里:https://codepen.io/breadwild/pen/abWMQPB
有什么想法?
发布于 2022-09-01 20:48:43
在您的wrap中,您的column和sidebar被包装成2行,因此没有出现列间隙,因为每个列都占据了整个宽度。(两行之间也没有行间距,因为正如另一个答案中提到的,您使用的是没有任何高度的父级的%值)。
使用wrap,您可以将元素包装成新的行。所以浏览器查看每个元素,看到有足够的文本占据整行,所以它允许这样做,并将元素放在2行。
使用nowrap,您将告诉浏览器将这两个元素放在同一行上。因此浏览器会这样做,为每个元素选择一个宽度,使它们具有相似的高度,并允许10%的间距在两者之间。
因此,要为wrap获得相同的效果,需要对两个元素进行约束,这样它们就不会占用整个行,并且不会导致将其包装为2行。
您可以通过添加这个CSS来实现这一点,例如:
.column {
max-width: 60%;
}
.sidebar {
max-width: 30%;
}https://stackoverflow.com/questions/68775570
复制相似问题