在两列中显示内容(各占50%),如果内容不适合,则将列移动到下一行并填充水平空间

b22*_*488 0 css css3 multiple-columns flexbox

在我的项目中,我想在两列中显示内容(每列50%),如果内容不适合,则将列移到下一行并填充水平空间。

这是两个图像,以显示我的意思。

对于短文本,将其显示在两列中:

在此处输入图片说明

当文本不再适合时,即任一列的宽度都在50%以上时,将第二列的内容移至下一行,以填充所有可用的水平空间。有点像这样:

在此处输入图片说明

只能使用CSS做到这一点吗?

LGS*_*Son 5

您可以使用flexboxwhite-space: nowrap

小提琴片段

堆栈片段

.wrapper {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.left,
.right {
  flex: 1 0 50%;
  background: lightgreen;
  white-space: nowrap;
  text-align: center;
  padding: 10px;
  box-sizing: border-box;
}
.right {
  background: lightblue;
}
Run Code Online (Sandbox Code Playgroud)
<div class="wrapper">

  <div class="left">
   This is a longer text. This is a longer text. 
  </div>
  <div class="right">
  This is a shorter text. 
  </div>
  
</div>

<div class="wrapper">

  <div class="left">
   This is an even longer text. This is an even longer text.
  </div>
  <div class="right">
  This is a shorter text. 
  </div>
  
</div>
Run Code Online (Sandbox Code Playgroud)