html - flexbox 内的自动换行不起作用

标签 html css flexbox word-wrap

我正在使用 flexbox,每个元素都由其下的图片和文本组成。我需要使所有图片具有相同的高度(宽度可能会有所不同)和要换行的文字,这样它就不会扩展元素。

但我设法只在宽度合理的情况下启用自动换行,而不是高度。

注意:我需要证明图像而不是元素。

.wrapper1,
.wrapper2 {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}

.flex-item {
  margin: 5px;
  background-color: #ddd;
}

.wrapper1 .flex-item {
  width: 150px;
}

.flex-item p:last-child {
  margin-bottom: 0;
}

.card-image {
  width: 100%;
}

.card-body {
  padding: 7px;
  word-wrap: break-word;
}

.wrapper2 .flex-item {
  width: auto;
}

.wrapper2 .card-image {
  height: 231px;
  width: auto;
}
<div class="wrapper1">
  <div class="flex-item">
    <a href="/comics/novathekeep" title="Нова: Цитадель"><img src="http://warcry.ru/comics/pages/thumb/51.jpg" class="card-image" /></a>
    <div class="card-body">
      <p><a href="/comics/novathekeep">Нова: Цитадель</a></p>
    </div>
  </div>
  <div class="flex-item">
    <a href="/comics/artanissacrifice" title="Артанис: Великая жертва"><img src="http://warcry.ru/comics/pages/thumb/303.jpg" class="card-image" /></a>
    <div class="card-body">
      <p><a href="/comics/artanissacrifice">Артанис: Великая жертва</a></p>
    </div>
  </div>
  <div class="flex-item">
    <a href="/comics/kerriganhopeandvengeance" title="Керриган: Надежда и мщение"><img src="http://warcry.ru/comics/pages/thumb/41.jpg" class="card-image" /></a>
    <div class="card-body">
      <p><a href="/comics/kerriganhopeandvengeance">Керриган: Надежда и мщение</a></p>
    </div>
  </div>
</div>

<div class="wrapper2">
  <div class="flex-item">
    <a href="/comics/novathekeep" title="Нова: Цитадель"><img src="http://warcry.ru/comics/pages/thumb/51.jpg" class="card-image" /></a>
    <div class="card-body">
      <p><a href="/comics/novathekeep">Нова: Цитадель</a></p>
    </div>
  </div>
  <div class="flex-item">
    <a href="/comics/artanissacrifice" title="Артанис: Великая жертва"><img src="http://warcry.ru/comics/pages/thumb/303.jpg" class="card-image" /></a>
    <div class="card-body">
      <p><a href="/comics/artanissacrifice">Артанис: Великая жертва</a></p>
    </div>
  </div>
  <div class="flex-item">
    <a href="/comics/kerriganhopeandvengeance" title="Керриган: Надежда и мщение"><img src="http://warcry.ru/comics/pages/thumb/41.jpg" class="card-image" /></a>
    <div class="card-body">
      <p><a href="/comics/kerriganhopeandvengeance">Керриган: Надежда и мщение</a></p>
    </div>
  </div>
</div>

Fiddle

第一个 flexbox 具有相同宽度的元素(自动换行有效),第二个 flexbox 具有相同高度的元素(自动换行无效)。

最佳答案

你必须分配 max-width 或 flex-basis 属性

.wrapper2 .flex-item {
    flex: 0 1 150px;
}

.wrapper2 .flex-item {
    max-width: 150px;
}

关于html - flexbox 内的自动换行不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46296701/

相关文章:

css - 如何使 material2 标签使用整页大小

css - Flexbox justify-content 无法与变换比例一起正常工作

css - 我可以让为 OS X 上的 safari 编写的 CSS 在 chrome for windows 中工作吗?

css - 倾斜的背景只是 CSS

javascript - jsPDF - 无法将 html 呈现为 pdf

html - 自定义元素符号和段落左边距自定义

ruby-on-rails - 使用 Ruby on Rails 3 表单助手的多个 CSS 类/id 名称

html - 带 flex 包装的边距

html - 根据另一个元素的宽度调整一个元素的宽度

javascript - 如果 2 个跨度有数据,则添加字符