Flex как перенести объект на другую строку?
На странице есть элементы, которые при десктопе расположены в ряд. При мобильной версии один из элементов, который находится по середине должен располагаться на новой строке, как при помощи flex это можно сделать?
.container < display: flex; >.item < width: 100px; height: 100px; display: block; >.item:nth-child(1) < background: green; >.item:nth-child(2) < background: red; >.item:nth-child(3)
Отслеживать
Дмитрий Моисеев
задан 15 авг 2020 в 11:53
Дмитрий Моисеев Дмитрий Моисеев
131 9 9 бронзовых знаков
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Не меняя разметку, добиться желаемого результата только с помощь flex, проблематично.
Однако, если ширина блоков известна, можно сделать следующие действия:
- задать order красному блоку, это позволит вывести его после синего
- Чтобы элементы переносились на новую строку, необходимо
- установить flex-wrap: wrap
- элементы не должны вмещаться в ширину контейнера
В итоге может получиться следующее:
при обычном виде красный блок перенесется, при раскрытии на всю страницу — нет.
.container < display: flex; >.item < width: 100px; height: 100px; display: block; >.item:nth-child(1) < background: green; >.item:nth-child(2) < background: red; >.item:nth-child(3) < background: blue; margin-left: auto; >@media (max-width:650px) < .container < flex-wrap: wrap; >.item:nth-child(2) < order: 3; >.item:nth-child(3) < margin-left: calc(100% - 200px); >>Отслеживать
ответ дан 15 авг 2020 в 12:24
80.8k 9 9 золотых знаков 78 78 серебряных знаков 134 134 бронзовых знакаflex-wrap: wrap; Допустим, у тебя есть контейнер флекс-бокс. В нём 3 кубика по 200 px. Они помещаются только в контейнер, где 600 px. Если он станет меньше, то все элементы внутри будут смещаться
html



















