CSS @media правило
- предыдущая страница max-width
- следующая страница min-block-size
Определение и использование
@media правила используются в медиа-запросах для применения различных стилей к различным типам СМИ / устройствам.
Медиа-запросы могут использоваться для проверки множества вещей, таких как:
- Ширина и высота области просмотра
- Ширина и высота устройства
- Направление (в горизонтальном или вертикальном режиме телефона или планшета?)
- Разрешение
Использование медиа-запросов - это популярная техника для предоставления адаптивных таблиц стилей для стационарных компьютеров, ноутбуков, планшетов и смартфонов (адаптивный веб-дизайн).
Вы также можете использовать медиа-запросы для определения стилей, которые применяются только к документам для печати или экранным читателям (mediatype: print, screen или speech).
Кроме типа媒体, есть и медиа-характеристики. Медиа-характеристики предоставляют дополнительные конкретные детали для медиа-запросов, позволяя тестировать конкретные характеристики агента пользователя или отображаемого устройства. Например, вы можете применить стили только к экранам шире или уже определенной ширины.
См. также:
Учебник CSS:Медиа-запросы CSS
Учебник CSS:Примеры CSS медиа-запросов
Учебник RWD:Реализация адаптивного веб-дизайна через медиа-запросы
Руководство JavaScript:Метод window.matchMedia()
Ин实例
Пример 1
Если ширина окна браузера составляет 600px или меньше, измените цвет фона элемента <body> на «светло-голубой»:
@media only screen and (max-width: 600px) { body { background-color: lightblue; } }
Более много примеров TIY можно найти в нижней части страницы.
Грамматика CSS
@media not|only mediatype and (mediafeature and|or|not mediafeature) { CSS-Code; }
Значение ключевых слов not, only и and:
not: ключевое слово not меняет смысл всего запроса на媒体.
only: ключевое слово only предотвращает применение старыми браузерами指定的 стилей, которые не поддерживают медиа-запросы с медиа-характеристиками. Оно не влияет на moderne браузеры.
и: ключевые слова and kombiniruyut медиа-характеристики с типом媒体 или другими медиа-характеристиками.
Они все необязательны. Но если используется not или only, то также необходимо указать тип媒体.
Вы также можете использовать различные таблицы стилей для различных медиа, например:
<link rel="stylesheet" media="screen and (min-width: 900px)" href="widescreen.css"> <link rel="stylesheet" media="screen and (max-width: 600px)" href="smallscreen.css"> ...
Тип媒体
Значение | Описание |
---|---|
all | По умолчанию. Используется для всех типов устройств. |
Используется для принтеров. | |
screen | Используется для компьютерных экранов, планшетов, смартфонов и т.д. |
speech | Используется экранными речевыми браузерами для чтения страниц. |
Медиа-характеристики
Значение | Описание |
---|---|
any-hover |
Есть ли доступные механизмы ввода, которые позволяют пользователю悬停在元素上 (например, мышь)? Добавлен в Media Queries Level 4. |
any-pointer |
Среди доступных механизмов ввода есть ли какие-либо устройства указателей, и если да, то какова их точность? Добавлен в Media Queries Level 4. |
aspect-ratio | Соотношение ширины к высоте области просмотра (viewport). |
color |
Битное значение каждого пикселя на выходном устройстве,常见的 значения - 8, 16, 32 бита. Значение 0, если устройство не поддерживает цветное отображение. |
color-gamut |
Область цветового пространства, поддерживаемого приблизительно пользователем агента и выходным устройством. Добавлен в Media Queries Level 4. |
color-index |
Количество записей в таблице поиска цветов (color lookup table) устройства. Значение 0, если устройство не использует таблицу поиска цветов. |
device-aspect-ratio |
Соотношение ширины к высоте устройства. Уже弃нуто в Media Queries Level 4. |
device-height |
Высота поверхности рендеринга устройства (например, экрана). Уже弃нуто в Media Queries Level 4. |
device-width |
Ширина поверхности рендеринга устройства (например, экрана). Уже弃нуто в Media Queries Level 4. |
display-mode |
Режим отображения приложения, как указано в成员е display в манифесте web app. Определено в спецификации Web App Manifest. |
forced-colors |
Ограничивает ли пользовательский агент палитру цветов? Добавлен в Media Queries Level 5. |
grid | Использует ли выходное устройство сетчатый экран или матричный экран? |
height | Высота области просмотра (viewport). |
hover |
Позволяет ли основная система ввода пользователю наводить курсор на элемент? Добавлен в Media Queries Level 4. |
inverted-colors |
Включена ли инверсия цветов в браузере или на уровне операционной системы. Добавлен в Media Queries Level 5. |
light-level |
Уровень текущей световой среды. Добавлен в Media Queries Level 5. |
max-aspect-ratio | Максимальное соотношение ширины к высоте области отображения. |
max-color | Максимальное количество бит для каждой компоненты цвета на выходном устройстве. |
max-color-index | Максимальное количество цветов, которые может отображать устройство. |
max-height | Максимальная высота области отображения, например, окна браузера. |
max-monochrome | Максимальное количество бит для каждого "цвета" на монохромных (грayscale) устройствах. |
max-resolution | Максимальное разрешение устройства, выраженное в dpi или dpcm. |
max-width | Максимальная ширина области отображения, например, окна браузера. |
min-aspect-ratio | Минимальное соотношение ширины к высоте области отображения. |
min-color | Минимальное количество бит для каждой компоненты цвета на выходном устройстве. |
min-color-index | Минимальное количество цветов, которые может отображать устройство. |
min-height | Минимальная высота области отображения, например, окна браузера. |
min-monochrome | Минимальное количество бит для каждого "цвета" на монохромных (грayscale) устройствах. |
min-resolution | Низшая разрешающая способность устройства, измеряемая в dpi или dpcm. |
min-width | Минимальная ширина области отображения, например, окно браузера. |
monochrome |
Битовая глубина каждого пикселя в монохромном буфере устройства вывода. Если устройство не имеет черно-белого экрана, то значение равно 0. |
orientation | Направление вращения окна просмотра (ландскей или портрет). |
overflow-block |
Как устройство вывода обрабатывает содержимое, вылезающее за пределы окна просмотра по блоковому направлению? Добавлен в Media Queries Level 4. |
overflow-inline |
Может ли содержимое, вылезающее за пределы окна просмотра по внутреннему направлению, скользить? Добавлен в Media Queries Level 4. |
pointer |
Основной ввод — это устройство указателя? Если да, то какова его точность? Добавлен в Media Queries Level 4. |
prefers-color-scheme |
Определяет, предпочитает ли пользователь световую или темную схему цветов. Добавлен в Media Queries Level 5. |
prefers-contrast |
Определяет, требует ли пользователь повышения или понижения контрастности между близкими цветами. Добавлен в Media Queries Level 5. |
prefers-reduced-motion |
Пользователь хочет, чтобы на странице было меньше динамических эффектов? Добавлен в Media Queries Level 5. |
prefers-reduced-transparency |
Пользователь предпочитает более низкую прозрачность? Добавлен в Media Queries Level 5. |
resolution | Разрешение устройства вывода, измеряемое в dpi или dpcm. |
scan | Процесс сканирования устройства вывода (например, телевизора). |
scripting |
Определяет, доступен ли скрипт (например, JavaScript). Добавлен в Media Queries Level 5. |
update |
Частота обновления контента устройства вывода. Добавлен в Media Queries Level 4. |
width | Ширина окна просмотра (viewport). |
Более примеров
Пример 2
Скрыть элемент, когда ширина браузера составляет 600 пикселей или меньше:
@media screen and (max-width: 600px) { div.example { display: none; } }
Пример 3
Если ширина окна просмотра составляет 800 пикселей или больше, установите цвет фона с помощью медиа-запросов в светло-фиолетовый; если ширина окна просмотра介于 400 и 799 пикселями, установите цвет фона с помощью медиа-запросов в светло-зеленый. Если ширина окна просмотра меньше 400 пикселей, цвет фона будет светло-голубым:
body { background-color: lightblue; } @media screen and (min-width: 400px) { body { background-color: lightgreen; } } @media screen and (min-width: 800px) { body { background-color: lavender; } }
Пример 4
Создайте адаптивное меню навигации (горизонтально отображается на больших экранах, вертикально на маленьких экранах):
@media screen and (max-width: 600px) { .topnav a { float: none; width: 100%; } }
пример 5
Используйте media queries для создания адаптивной колонки макета:
/* На экранах с шириной 992px или меньше, перейти от четырех колонок к двум */ @media screen and (max-width: 992px) { .column { width: 50%; } } /* На экранах с шириной до или равной 600 пикселей, сделать колонки chồngующимися, а не расположенными lado a lado */ @media screen and (max-width: 600px) { .column { width: 100%; } }
пример 6
Используйте media queries для создания адаптивного веб-сайта:
пример 7
media queries также можно использовать для изменения макета страницы в зависимости от направления браузера. Вы можете написать набор свойств CSS, которые применяются только когда ширина окна браузера больше его высоты (т.е. в режиме "портрет"方向).
Если направление находится в режиме портретного изображения, используйте фоновый цвет светло-голубой:
@media only screen and (orientation: landscape) { body { background-color: lightblue; } }
пример 8
Используйте media queries для установки цвета текста на зеленый при отображении документа на экране и черный при печати:
@media screen { body { color: green; } } @media print { body { color: black; } }
пример 9
список, разделенный запятыми: используйте запятую для добавления другого запроса к существующему запросу media (его поведение подобно оператору OR):
/* Когда ширина между 600px и 900px или больше 1100px - изменить вид <div> */ @media screen and (max-width: 900px) and (min-width: 600px), (min-width: 1100px) { div.example { font-size: 50px; padding: 50px; border: 8px solid black; background: yellow; } }
поддержка браузеров
числа в таблице указывают на первую версию браузера, которая полностью поддерживает правила @media.
Chrome | IE / Edge | Firefox | Safari | Opera |
---|---|---|---|---|
21 | 9 | 3.5 | 4.0 | 9 |
- предыдущая страница max-width
- следующая страница min-block-size