Бывает нужен блок, который на больших экранах выглядит как таблица с несколькими колонками, а на экранах с маленьким разрешением как одна вертикальная полоса.
Ниже будет пример того, как это можно сделать с использованием css свойств flexbox.
Не буду долго ходить вокруг, вот как это будет выглядеть на большом разрешении:
А так, если экран меньше заданной границы:
Можно посмотреть живой пример.
И собственно сам код:
<div class="flex_grid">
<div class="item">
<div class="img">
<img src="https://fakeimg.pl/100x100/ff0000,128/000,255" alt="img">
</div>
<div class="text">
<p>
<b>Всё онлайн</b>
</p>
<p>
Не надо никуда ходить и ждать курьера. Пара минут на анкету, ещё пара на решение.
</p>
</div>
</div>
<div class="item">
<div class="img">
<img src="https://fakeimg.pl/300/000080/FFFFFF" alt="img">
</div>
<div class="text">
<p>
<b>Всё онлайн</b>
</p>
<p>
Не надо никуда ходить и ждать курьера. Пара минут на анкету, ещё пара на решение.<br />
</p>
</div>
</div>
</div>
/*
Тестовое оформление
*/
.flex_grid {
border: 20px solid green;
flex-basis: 200px;
}
.flex_grid .item {
border: 1px solid red;
}
/*
Функционал
*/
.flex_grid {
width: 1000px;
margin: 0 auto;
}
.flex_grid .item {
display: flex;
margin-bottom: 20px;
}
.flex_grid .item .text {
display: flex;
flex-direction: column;
justify-content: center;
}
.flex_grid .img {
min-width: 120px;
margin: 0 25px;
display: flex;
flex-direction: column;
justify-content: center;
/*flex: 0 0 200px;*/
flex-grow: 0;
flex-shrink: 0;
flex-basis: 200px;
}
.flex_grid img {
display: block;
max-width: 100%;
align-self: center; /* Значение по умолчанию stretch и картинку раздирает */
}
/*
Пример вертикального отображения
*/
@media (max-width: 960px ) {
.flex_grid {
width: auto;
}
.flex_grid .item {
display: flex;
flex-direction: column;
}
.flex_grid .item .text {
align-items: center;
}
.flex_grid .img {
flex-basis: auto;
}
}
Готовый результат, можно скачать архивом.