Адаптивная вёрстка — практическое задание
Free PreviewПришло время применить медиазапросы на практике. В предыдущих уроках мы уже сверстали несколько блоков лендинга с помощью flexbox и grid. Сейчас наша страница скорее всего хорошо выглядит только на широком экране — давайте исправим это.
Подготовка
Для начала убедитесь, что в <head> вашей страницы есть метатег viewport. Без него мобильные браузеры будут отображать страницу как уменьшенную десктопную версию:
<meta name="viewport" content="width=device-width, initial-scale=1.0">html
Чтобы увидеть, как страница выглядит на разных устройствах, откройте инструменты разработчика (Ctrl+Shift+I) и нажмите на иконку «Переключить панель устройств» (Ctrl+Shift+M). В этом режиме можно выбрать конкретное устройство или вручную задать ширину экрана.
Описание задания
Необходимо добавить к странице адаптивные стили, используя медиазапросы. Используйте подход desktop-first — базовые стили у вас уже написаны для широкого экрана, поэтому нужно добавить переопределения для меньших размеров с помощью max-width.
Используйте две точки останова:
1024px— планшеты;768px— мобильные устройства.
Что нужно адаптировать
Навигация
На мобильных устройствах горизонтальный список ссылок может не умещаться. Переключите его в вертикальный режим и выровняйте по центру:
@media (max-width: 768px) { nav ul { /* подсказка: flex-direction и align-items */ } }css
Блок с карточками фич (flexbox)
На планшетах карточки могут переноситься на вторую строку — это нормально, но убедитесь что они выглядят аккуратно. На мобильных карточки должны выстраиваться в одну колонку и занимать всю доступную ширину:
@media (max-width: 768px) { .features .list { /* подсказка: flex-direction */ } .feature { /* подсказка: width */ } }css
Блок с достопримечательностями (grid)
Сетка с карточками разных размеров хорошо выглядит на широких экранах, но на маленьких экранах её нужно упрощать.
На планшетах замените сетку на две равные колонки. Не забудьте сбросить особое позиционирование для карточек с классами wide и tall, чтобы они не ломали сетку:
@media (max-width: 1024px) { .attractions .grid { /* подсказка: grid-template-columns */ } .card.wide, .card.tall { /* подсказка: grid-column и grid-row */ } }css
На мобильных замените сетку на одну колонку:
@media (max-width: 768px) { .attractions .grid { /* подсказка: grid-template-columns */ } }css
Дополнительно — типографика и отступы
На мобильных устройствах заголовки и отступы секций часто бывают слишком крупными. Уменьшите их, чтобы контент лучше помещался на экране. Это можно сделать с помощью одного медиазапроса в котором вы укажете стили для h1, h2, основных секций и т.д.
Ожидаемый результат
После выполнения задания страница должна:
- корректно отображаться на экранах от 360px до 1440px и шире;
- не иметь горизонтальной прокрутки на мобильных;
- перестраивать все блоки (навигация, карточки фич, карточки достопримечательностей) в одну колонку на мобильных;
- показывать двухколоночную сетку на планшетах.
Это завершающий урок второго модуля. Мы прошли путь от базовых CSS-селекторов до адаптивной вёрстки. В следующем модуле переходим к изучению JavaScript.