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

Примеры медиазапросов CSS

Предоставление разных стилей для разных устройств — популярная задача медиазапросов. Правила CSS могут при этом зависеть от характеристик устройства, в том числе от ширины области просмотра.

Пример

Здесь цвет фона меняется вместе с шириной области просмотра.

Prompt
Создайте страницу, использующую медиазапросы для изменения цвета фона body при разной ширине области просмотра: olive для мобильных устройств, blue при 768px и tan при 992px. Включите белый текст для первых двух и чёрный текст для последнего.
Результат: полная HTML-страница

Медиазапросы для колонок

Ещё одно распространённое применение — гибкие макеты. В зависимости от размера экрана макет здесь переключается между четырьмя колонками, двумя колонками и колонками на всю ширину.

Глава CSS Flexbox подробнее объясняет модуль гибкого блочного макета.

Подробнее об адаптивном веб-дизайне читайте в руководстве по адаптивному веб-дизайну.

Пример

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

Медиазапросы для меню

Меню навигации тоже может стать адаптивным: с помощью медиазапросов его дизайн подстраивается под каждый размер экрана.

Пример

Prompt
Создайте горизонтальное навигационное меню с помощью неупорядоченного списка и flexbox. Оформите ссылки белым текстом на тёмном фоне (#333). Используйте медиазапрос, чтобы элементы меню располагались вертикально, когда область просмотра составляет 600px или меньше.
Результат: полная HTML-страница

Скрытие элементов с помощью медиазапросов

Маленьким экранам могут быть нужны не все элементы, и медиазапрос может скрыть те, которые не нужны.

Пример

Prompt
Создайте страницу со стилизованным элементом div, который скрывается, когда ширина области просмотра составляет 600px или меньше, используя медиазапрос с display: none.
Результат: полная HTML-страница

Изменение размера шрифта с помощью медиазапросов

Размер шрифта элемента тоже может зависеть от ширины области просмотра с помощью медиазапроса.

Пример

Prompt
Создайте страницу с элементом div, размер шрифта которого меняется на 80px, когда ширина области просмотра составляет 600px или больше, используя медиазапрос с min-width.
Результат: полная HTML-страница

Медиазапросы для ориентации экрана

Ориентация экрана — ещё одно условие, на которое может реагировать медиазапрос, соответствующим образом изменяя макет страницы.

Пример

Пока экран находится в альбомной ориентации, body получает другой цвет фона.

Prompt
Создайте страницу, использующую медиазапрос для изменения цвета фона body на lightblue, когда ориентация экрана альбомная.
Результат: полная HTML-страница

Медиазапросы для пользовательских предпочтений

Анимация может быть проблемой для людей с чувствительностью к движению, которые предпочитают сайты с меньшим её количеством.

Чтобы узнать, запросил ли пользователь уменьшение движения, например меньше анимаций или переходов, проверьте медиахарактеристику prefers-reduced-motion. Когда эта настройка активна на его компьютере, вы можете отключить анимации.

Пример

Prompt
Создайте страницу, использующую медиафункцию prefers-reduced-motion для отключения всех анимаций и переходов, когда пользователь запросил уменьшение движения.
Результат: полная HTML-страница

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

Сочетание flexbox и медиазапросов даёт адаптивную галерею изображений.

Пример

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

Адаптивный сайт

То же сочетание flexbox и медиазапросов позволяет построить макет целого адаптивного сайта.

Пример

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