Категория > Справочник CSS > Медиа-запросы
Медиа-запросы23-03-2016, 19:17. Автор: Administrator |
||||||||||||||||||||||||||||||||||||||||||||||||
Краткая информация
Версии CSS
ОписаниеНаряду с типами носителей в CSS3 включена поддержка различных технических параметров устройств, на основе которых требуется загружать те или иные стили. К примеру, можно определить смартфон с максимальным разрешением 640 пикселов и для него установить одни стилевые свойства, а для остальных устройств другие. Также можно выявить различные характеристики вроде наличия монохромного экрана, ориентации (портретная или альбомная) и др. Все характеристики легко комбинируются, поэтому допустимо задать стиль только для устройств в альбомной ориентации с заданным разрешением экрана. Возможности медиа-запросов не ограничиваются выявлением мобильных устройств, с их помощью можно создавать адаптивный макет. Такой макет подстраивается под разрешение монитора и окна браузера, меняя при необходимости ширину макета, число колонок, размеры изображений и текста. Медиа-запросы ограничивают ширину макета и при достижении этого значения (к примеру за счёт уменьшения окна или при просмотре на устройстве с указанным размером) уже применяется другой стиль. СинтаксисВсе запросы начинаются с правила @media, после чего следует условие, в котором используются типы носителей, логические операторы и медиа-функции. Типы носителей перечислены в табл. 1.
Логические операторы, применяемые в медиа-запросахandЛогическое И. Указывается для объединения нескольких условий. Пример. Стиль для всех цветных устройств
notЛогическое НЕ. Указывается для отрицания условия. Пример. Стиль для всех устройств кроме смартфонов
Оператор not имеет низкий приоритет и оценивается в запросе последним, поэтому выражение
следует понимать как
а не
onlyПрименяется для старых браузеров, которые не поддерживают медиа-запросы. Пример. Стиль для новых браузеров
В списке нет логического оператора ИЛИ, его роль выполняет запятая. Перечисление нескольких условий через запятую говорит о том, что если хотя бы одно условие выполняется, то стиль будет применён. Пример. Стиль для устройств с альбомной ориентацией или минимальной шириной 480 пикселов.
Также при использовании операторов следует указывать скобки, чтобы менять приоритет операций. Медиа-функцииМедиа-функции задают технические характеристики устройства, на котором отображается документ. Стиль выполняется в том случае, если запрос возвращает истину, иными словами, указанные условия выполняются. Большинство функций содержат приставку min- и max-, которая соответствуют минимальному и максимальному значению. Так, max-width: 400px означает, что ширина окна браузера меньше 400 пикселов, а min-width: 1000px, наоборот, сообщает, что ширина окна больше 1000 пикселов. aspect-ratio (min-aspect-ratio, max-aspect-ratio)Тип носителя: handheld, print, projection, screen, tty, tv Определяет соотношение ширины и высоты отображаемой области устройства. Значение указывается в виде двух целых чисел разделяемых между собой слэшем (/). color (min-color, max-color)Тип носителя: handheld, print, projection, screen, tty, tv Определяет число бит на канал цвета. К примеру, значение 3 означает, что красный, зелёный и синий канал могут отображать 23 цветов каждый, что в общем составляет 512 цветов (8×8×8). Если значение не указано, тогда проверяется что устройство цветное. В примере 1 показана такая проверка. Пример 1. Стиль для цветных устройств
color-index (min-color-index, max-color-index)Тип носителя: handheld, print, projection, screen, tty, tv Определяет количество цветов, которое поддерживает устройство. В примере 2 показан стиль для экранов отображающих не меньше 256 цветов. Пример 2. Цветной дисплей
device-aspect-ratio (min-device-aspect-ratio, max-device-aspect-ratio)Тип носителя: handheld, print, projection, screen, tty, tv Определяет соотношение сторон экрана устройства. Значение указывается в виде двух целых чисел разделяемых между собой слэшем (/). В примере 3 показано, как установить стиль для экранов с соотношением сторон 16:9 и более. Пример 3. «Киношное» соотношение
device-height (min-device-height, max-device-height)Тип носителя: все кроме speech Определяет всю доступную высоту экрана устройства или печатной страницы. device-width (min-device-width, max-device-width)Тип носителя: все кроме speech Определяет всю доступную ширину экрана устройства или печатной страницы. В примере 4 в зависимости от разрешения монитора устанавливается ширина слоя. Так, для значения 1280 пикселов ширина макета задаётся как 1100px. Пример 4. Ширина макета HTML5CSS3IECrOpSaFx
gridТип носителя: all Определяет, что это устройство с фиксированным размером символов. Размеры букв на таком устройстве занимают одинаковую ширину и высоту и выстраиваются по заданной сетке. К подобным устройствам можно отнести терминалы, а также телефоны, которые поддерживают только один шрифт. Если вам требуется форматировать текст, не указывайте его размер в пикселах, для подобных устройств используется единица em (пример 5). Пример 5. Размер букв HTML5CSS3IECrOpSaFx
height (min-height, max-height)Тип носителя: все кроме speech Высота отображаемой области. monochrome (min-monochrome, max-monochrome)Тип носителя: handheld, print, projection, screen, tty, tv Определяет, что устройство монохромное. Если указано число, то оно обозначает число бит на пиксел. Так, значение 8 равнозначно 256 оттенкам серого (или другого цвета). В примере 6 показан стиль для монохромного и цветного принтера. Пример 6. Стиль для принтера
orientationТип носителя: handheld, print, projection, screen, tty, tv Определяет, что устройство находится в альбомном режиме (ширина больше высоты) или портретном (ширина меньше высоты). В примере 7 устанавливается разная фоновая картинка в случае альбомной (landscape) или портретной ориентации (portrait). Пример 7. Использование ориентации устройства
resolution (min-resolution, max-resolution)Тип носителя: handheld, print, projection, screen, tv Определяет разрешение устройства, например, принтера. В примере 8 стиль будет работать для принтера с минимальным разрешением 300 точек на дюйм. Пример 8. Разрешение принтера
scanТип носителя: tv Определяет тип развертки телевизора — череcстрочная (interlace) или прогрессивная (progressive). При чересстрочной развёртке телевизор вначале показывает нечётные строки кадра, затем чётные, что позволяет сократить передаваемые данные. В прогрессивной развёртке кадр передаётся и показывается целиком. width (min-width, max-width)Тип носителя: все кроме speech Описывает ширину отображаемой области. Это может быть окно браузера или печатная страница. В примере 9 при уменьшении окна до 600 пикселов и меньше меняется цвет фона веб-страницы. Пример 9. Использование max-width HTML5CSS3IECrOpSaFx
Перейти обратно к новости |