Адаптируем страницу под размер окна браузера
В настоящее время существует множество цифровых устройств с различными размерами экранов, от смартфонов до телевизоров с диагональю 42 дюйма и выше. Как полагается, на всех этих устройствах различные разрешения (примерно от 320х240 до 1920х1200) и под каждое из этих разрешений часто бывает необходимо адаптировать веб-страницу. Делается это при помощи media queries - части спецификации CSS3, позволяющей задать область действия селектора. Media queries представляет собой блок с указанием параметров устройства вывода, такие как тип, ширина и высота окна браузера, разрешение, ориентация в пространстве. Начинается всё с правила @media, следом за которым записываются типы устройств, логические операторы и медиа-функции. В списке ниже отметим все 3 логических оператора.
- and - логическое "И", применяется для объединения нескольких условий;
- not - логическое "НЕ", применяется для отрицания какого-либо условия;
- , - логическое "ИЛИ", если хотя бы одно из условий соблюдается, тогда стиль будет применён.
Теперь рассмотрим медиа-функции. С их помощью задаются технические характеристики устройств (например размер окна браузера). Их 12 штук в настоящее время.
- aspect-ratio (min-aspect-ratio, max-aspect-ratio) - определяет соотношение ширины к высоте отображаемой области. Обозначается 2/3 например, то есть 2 числа, разделённые знаком "/";
- color (min-color, max-color) - определяет количество бит на один канал цвета. Значение min-color:2 обозначает, что каждый из трёх каналов цветовой системы RGB может отображать 22 оттенков и все вместе 4*4*4=64 различных цвета. Если значение не указано вообще, тогда проверяется цветное оно или нет;
- color-index (min-color-index, max-color-index) - определяет количество цветов, которое поддерживает устройство;
- device-aspect-ratio (min-device-aspect-ratio, max-device-aspect-ratio) - определяет соотношение сторон экрана устройства (2 числа через слэш, например 4/3);
- device-height (min-device-height, max-device-height) - определяет всю доступную высоту экрана устройства или печатной страницы;
- device-width (min-device-width, max-device-width) - определяет всю доступную ширину экрана устройства или печатной страницы;
- grid - определяет, что это устройство с фиксированным размером символов (терминал или телефон);
- height (min-height, max-height) - задаёт высоту отображаемой области;
- monochrome (min-monochrome, max-monochrome) - определяет, что устройство монохромное, в случае присвоения какого-либо значения, обозначается количество бит на на один пиксель. Например, значение 8 равнозначно 28 оттенкам цвета монохромного дисплея;
- orientation - определяет, что устройство находится в альбомном режиме, значение landscape или портретном значение portrait;
- resolution (min-resolution, max-resolution) - определяет разрешение устройства в dpi (точек на дюйм) или dpcm (точек на сантиметр);
- scan - определяет тип развертки телевизора — череcстрочная (interlace) или прогрессивная (progressive). При чересстрочной развёртке телевизор вначале показывает нечётные строки кадра, затем чётные, в прогрессивной развёртке кадр передаётся и показывается целиком;
- width (min-width, max-width) - задаёт ширину отображаемой области;
А теперь пример. Создадим веб-страницу, а стиль для неё зададим при помощи media queries: