css - 在两列中显示内容(每列 50%),如果内容不适合将列移至下一行并填充水平空间

标签 css flexbox multiple-columns

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

这里有两张图片可以说明我的意思。

对于短文本,分两列显示:

enter image description here

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

enter image description here

这只能用 CSS 来完成吗?

最佳答案

您可以使用flexboxwhite-space: nowrap

Fiddle snippet

堆栈片段

.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;
}
<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>

关于css - 在两列中显示内容(每列 50%),如果内容不适合将列移至下一行并填充水平空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42221332/

相关文章:

python - SQL:从可能位于另一个表中的列中获取值

pandas - 如何做多列 from_tuples?

javascript - IE vendor 前缀/非前缀转换翻译不工作

css - 修改wordpress主题的麻烦

html - 我不知道为什么 Flexbox 元素会拉伸(stretch)

html - 为什么百分比宽度大小的 flex box 元素不能正确增加具有未指定(即自动)宽度的包装表的宽度?

html - 使用 flex 使具有不同行数的列具有相同的高度

php - 显示文件夹中的图像

css - 2 列 <div>,第一列动态宽度

css - 让子div通过滚动填充父div