HTML-страница может отображаться на устройствах с очень разными экранами. Поэтому нужно управлять видом страницы в зависимости от параметров экрана, точнее – свойств окна браузера как программного объекта.
Adaptive Web Design – дизайн веб-страниц, обеспечивающий правильное отображение сайта на различных устройствах и динамически подстраивающийся под заданные размеры окна браузера.
Главное: не нужно создавать отдельные версии веб-сайта для отдельных видов
устройств. Одна страница может одинаково хорошо смотреться на смартфоне, планшете, ноутбуке,
телевизоре, кофеварке, при печати.
Окно браузера, в котором отображается страница, имеет размеры, измеряемые в пикселях. Размеры могут изменяться во время просмотра страницы: пользователь может уменьшить окно, перевернуть устройство в портретную/альбомную ориентацию, изменить масштаб.
Параметры экрана сейчас:
Свойства в коде JavaScript:
Медиазапросы используются в тех случаях, когда нужно применить разные CSS-стили, для разных устройств по типу отображения (например: для принтера, монитора или смартфона), а также конкретных характеристик устройства (например: ширины окна просмотра браузера), или внешней среды (например: внешнее освещение). Учитывая огромное количество подключаемых к интернету устройств, медиазапросы являются очень важным инструментом при создании веб-сайтов и приложений, которые будут правильно работать на всех доступных устройствах.
В общем случае медиа-запрос состоит из ключевого слова, описывающего тип устройства (необязательный параметр) и выражения, проверяющего характеристики данного устройства. Из всех характеристик чаще всего проверяется ширина устройства width. Медиа-запрос является логическим выражением, которое возвращает истину или ложь.
Наиболее частое использование медиа-запросов – установить стили в зависимости от ширины экрана. В коде CSS написать:
@media (max-width: 600px) {
/* CSS-стили */;
}
Стили этого запроса будут применяться при ширине области просмотра не более 600 пикселей.
@media (min-width: 600px) and (max-width: 800px) {
div.right {
width: 100%;
}
}
Стиль этого запроса (ширина элемента div с классом right равна 100% от родительского элемента) будут применяться для всех устройств при ширине области просмотра от 600px до 800px включительно.