Перейти к основному содержимому

Адаптивный Flexbox

Медиазапросы позволяют макету на flexbox менять форму в зависимости от размера экрана и устройства.

Возьмём дизайн с тремя колонками на больших экранах и одной колонкой на маленьких. Один подход переключает flex-direction с row на column, когда достигнута выбранная точка перелома.

Другой подход сохраняет направление и изменяет процентное значение свойства flex у каждого flex-элемента. Чтобы это работало, flex-контейнеру также нужен flex-wrap: wrap;.

Изменение flex-direction

При ширине экрана 600px или меньше flex-direction переходит с row на column.

Prompt
Создайте страницу с трёхколоночным flexbox-макетом, используя flex-direction: row. Добавьте медиазапрос при max-width 600px, который изменяет flex-direction на column, превращая макет в одноколоночный. Используйте три цветных блока с текстом.
Результат: полная HTML-страница

Изменение процентного значения flex

Как только ширина экрана становится не больше 600px, свойство flex меняется скачком с 33.3% на 100%.

Prompt
Создайте страницу с flex-контейнером, используя flex-wrap: wrap. У каждого flex-элемента flex: 33.3%, что создаёт три колонки. Добавьте медиазапрос при max-width 600px, который изменяет каждый элемент на flex: 100% для одноколоночного макета.
Результат: полная HTML-страница

Адаптивная галерея изображений с использованием Flexbox

Объедините flexbox с медиазапросами, и галерея изображений сможет менять количество колонок в зависимости от размера экрана.

Пример

Prompt
Создайте адаптивную галерею изображений с использованием flexbox и медиазапросов. Показывайте четыре изображения в ряду на больших экранах, два в ряду на средних экранах (max-width 800px) и одно в ряду на маленьких экранах (max-width 600px). Используйте изображения-заполнители с описательным текстом под каждым.
Результат: полная HTML-страница

Адаптивный веб-сайт с использованием Flexbox

С помощью flexbox можно создать и полный макет адаптивного веб-сайта, в котором и панель навигации, и область контента остаются гибкими.

Пример

Prompt
Создайте адаптивный макет веб-сайта с использованием flexbox. Включите верхнюю панель навигации со ссылками, основную область контента с боковой панелью и подвал. Используйте медиазапросы, чтобы расположить ссылки навигации вертикально и разместить боковую панель под контентом на экранах шириной менее 600px.
Результат: полная HTML-страница