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

Медиазапросы CSS

Адаптивные веб-страницы опираются на медиазапросы, которые применяют стили в соответствии с характеристиками устройства или среды, отображающей страницу.

Они добавляются в таблицу стилей с помощью правила CSS @media.


Использование медиазапросов для добавления точки перелома

На предыдущей странице была создана веб-страница с сеточной раскладкой. Теперь ей нужна точка перелома, чтобы медиазапрос мог перестроить её элементы сетки на больших экранах.

Пример

Медиазапрос в этом примере задаёт точку перелома при 600px:

Prompt
Создайте страницу с адаптивной сеточной раскладкой с шапкой, меню, содержимым, боковой панелью с фактами и подвалом. По умолчанию (на мобильных) все элементы располагаются в один столбец. Добавьте медиазапрос при min-width 600px, который перестраивает элементы в сетку из 6 столбцов: шапка занимает все 6, меню — 1, содержимое — 4, факты — 1, подвал занимает все 6.
Результат: полная HTML-страница

Ещё одна точка перелома

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

Пример

Эти медиазапросы добавляют две точки перелома: одну для экранов шириной не менее 600px и одну для экранов шириной не менее 768px:

Prompt
Создайте адаптивную сеточную раскладку с разделами шапки, меню, содержимого, фактов и подвала. Используйте две точки перелома медиазапроса: при 600px перестройте в сетку, где меню занимает 1 столбец, содержимое — 4 столбца, а факты идут на отдельной строке, занимающей все 6; при 768px переместите факты рядом с содержимым (1 столбец), чтобы меню, содержимое и факты находились на одной строке.
Результат: полная HTML-страница

Типичные точки перелома для устройств

Экранов и устройств с разной высотой и шириной так много, что создать точную точку перелома для каждого из них сложно. Ориентация на пять распространённых групп упрощает задачу.

Пример

Prompt
Создайте страницу, демонстрирующую типичные адаптивные точки перелома, изменяя цвет фона body при пяти распространённых ширинах: 600px и меньше (очень маленький), 600px и больше (маленький), 768px и больше (средний), 992px и больше (большой) и 1200px и больше (очень большой). Отображайте текст, указывающий текущий диапазон размера.
Результат: полная HTML-страница

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

Раскладка страницы также может реагировать на ориентацию экрана с помощью медиазапросов.

В альбомном режиме в этом примере меняется цвет фона body:

Пример

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

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

На маленьких экранах медиазапрос ниже скрывает элемент:

Пример

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

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

По мере изменения ширины области просмотра медиазапрос ниже изменяет размер шрифта элемента:

Пример

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

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

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

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

Пример

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