У меня есть flexbox с 4 внутренними элементами, содержащими изображения и текст. Flexbox можно обернуть: flex-wrap: wrap
на обычном экране ноутбука, элементы находятся в одной строке, например:
элемент item элемент item,
когда окно сокращается, последний изгибаемый элемент перемещается вниз в новой строке, например:
item item item
item
таким образом, у меня есть 3 элемента в первой строке и 1 в секунда.
Что мне нужно, так это чтобы строка разбивалась только парами. чтобы не было 3 в строке и 1 в новой строке, только все 4 в строке или 2/2 в строке.
Мне также нужно, чтобы элементы немного уменьшились, но я нашел Обходной путь для этого.
<div class = "flex">
<div class = "f4">
<a href = "...">
<img ... width = "330" height = "247" >
<h3>Title</h3>
</a>
<p>the excertp ... </p>
</div>
<div class = "f4">
<a href = "...">
<img ... width = "330" height = "247" >
<h3>Title</h3>
</a>
<p>the excertp ... </p>
</div>
<div class = "f4">
<a href = "...">
<img ... width = "330" height = "247" >
<h3>Title</h3>
</a>
<p>the excertp ... </p>
</div>
<div class = "f4">
<a href = "...">
<img ... width = "330" height = "247" >
<h3>Title</h3>
</a>
<p>the excertp ... </p>
</div>
</div>
.flex {
display: flex;
justify-content: space-evenly;
flex-wrap: wrap;
}
.f4 {
flex-basis: 300px;
flex-grow: 1;
margin: 8px;
}
.f4 img {
max-width: 330px;
width: 100%;
height: auto;
}
РЕДАКТИРОВАТЬ:
Я позволяю элементам сокращаться до тех пор, пока исходный размер не уместится в 3 раза, поэтому мне не нужно добавлять дополнительные обертка.
.f4 {
flex-basis: 243.5px;
flex-grow: 1;
max-width: 330px;
margin: 8px;
}
.f4 img {
width: 100%;
height: auto;
}
@media (max-width: 1038px) {
.f4 {
flex-basis: 330px;
}
}