简体   繁体   English

Flexbox中的自动换行不起作用

[英]word-wrap inside flexbox not working

I'm using flexbox, each item consists of picture and text under it. 我正在使用flexbox,每个项目都由图片和文字组成。 I need to make all pictures same height (width may vary) and text to wrap so it doesn't extend items. 我需要使所有图片具有相同的高度(宽度可能会有所不同)和要包装的文字,以便它不会扩展项目。

But I managed to enable word-wrap only with justified width, not height. 但是我设法只用合理的宽度而不是高度来启用自动换行。

Note: I need to justify images, not items. 注意:我需要说明图片而非项目的合理性。

 .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 小提琴

First flexbox has items with same width (word-wrap works), second flexbox has items with same height (word-wrap doesn't work). 第一个flexbox具有相同宽度的项目(自动换行),第二个flexbox具有相同高度的项目(自动换行不起作用)。

You have to assign max-width or flex-basis property 您必须分配max-width或flex-basis属性

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

or 要么

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

This will work for you I think, give a try and let me know. 我认为这对您有用,请尝试并让我知道。

.wrapper2 .card-image {
    height: 231px;
}

check this fiddle 检查这个小提琴

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM