Медиа запросы в CSS — шпаргалка основных media queries
Я здесь не буду расписывать основы адаптивного веб-дизайна и преимущества адаптивного сайта. Когда страница автоматически подстраивается под различные разрешения мониторов — это, безусловно, здорово и принесёт вам дополнительный трафик с мобильных устройств и планшетов. Владельцы ноутов с небольшим разрешением монитора тоже скажут вам спасибо.
Я оставлю шпаргалку основных медиа запросов (media queries), которые использую на практике сам. Понятное дело, что абсолютно все устройства эти запросы не покроют. При необходимости пишите свои media queries, проставляя нужные контрольные точки. Существует уже определённая статистика, согласно которой есть ряд особо популярных разрешений мониторов, на которые стоит ориентироваться в первую очередь. Вот такая статистика за 2020 год:
Разрешение | Пользователей | Динамика |
---|---|---|
1366×768 | 21. |
-1.46% |
360×640 | 18.28 % | +2.31% |
1920×1080 | 12.29 %-0.85% | -0.85% |
1280×1024 | 6.94 % | -0.40% |
1600×900 | 4.57 % | -0.23% |
375×667 | 4.36 % | +0.48% |
1024×768 | 4.08 % | -0.26% |
320×568 | 3.83 % | +0.10% |
1440×900 | 3.16 % | -0.19% |
1280×800 | -0.02% | |
1680×1050 | 2.03 % | -0.25% |
768×1024 | 2.00 % | +0.07% |
1536×864 | 1.93 % | +0. 22% |
320×534 | 1.84 % | +0.05% |
320×570 | 1.62 % | +0.09% |
1280×720 | 1.42 % | +0.04% |
1360×768 | 1.05 % | -0.22% |
Должен быть подключен мета тег viewport
:
<meta name="viewport" content="width=device-width, initial-scale=1">
Шпаргалка Media queries CSS
/* Smartphones (вертикальная и горизонтальная ориентация) ----------- */ @media only screen and (min-width : 320px) and (max-width : 480px) { /* стили */ } /* Smartphones (горизонтальная) ----------- */ @media only screen and (min-width: 321px) { /* стили */ } /* Smartphones (вертикальная) ----------- */ @media only screen and (max-width: 320px) { /* стили */ } /* iPads (вертикальная и горизонтальная) ----------- */ @media only screen and (min-width: 768px) and (max-width: 1024px) { /* стили */ } /* iPads (горизонтальная) ----------- */ @media only screen and (min-width: 768px) and (max-width: 1024px) and (orientation: landscape) { /* стили */ } /* iPads (вертикальная) ----------- */ @media only screen and (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) { /* стили */ } /* iPad 3**********/ @media only screen and (min-width: 768px) and (max-width: 1024px) and (orientation: landscape) and (-webkit-min-device-pixel-ratio: 2) { /* стили */ } @media only screen and (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) and (-webkit-min-device-pixel-ratio: 2) { /* стили */ } /* Настольные компьютеры и ноутбуки ----------- */ @media only screen and (min-width: 1224px) { /* стили */ } /* Большие экраны ----------- */ @media only screen and (min-width: 1824px) { /* стили */ } /* iPhone 4 ----------- */ @media only screen and (min-width: 320px) and (max-width: 480px) and (orientation: landscape) and (-webkit-min-device-pixel-ratio: 2) { /* стили */ } @media only screen and (min-width: 320px) and (max-width: 480px) and (orientation: portrait) and (-webkit-min-device-pixel-ratio: 2) { /* стили */ } /* iPhone 5 ----------- */ @media only screen and (min-width: 320px) and (max-height: 568px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 2){ /* стили */ } @media only screen and (min-width: 320px) and (max-height: 568px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2){ /* стили */ } /* iPhone 6 ----------- */ @media only screen and (min-width: 375px) and (max-height: 667px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 2){ /* стили */ } @media only screen and (min-width: 375px) and (max-height: 667px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2){ /* стили */ } /* iPhone 6+ ----------- */ @media only screen and (min-width: 414px) and (max-height: 736px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 2){ /* стили */ } @media only screen and (min-width: 414px) and (max-height: 736px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2){ /* стили */ } /* Samsung Galaxy S3 ----------- */ @media only screen and (min-width: 320px) and (max-height: 640px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 2){ /* стили */ } @media only screen and (min-width: 320px) and (max-height: 640px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2){ /* стили */ } /* Samsung Galaxy S4 ----------- */ @media only screen and (min-width: 320px) and (max-height: 640px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 3){ /* стили */ } @media only screen and (min-width: 320px) and (max-height: 640px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 3){ /* стили */ } /* Samsung Galaxy S5 ----------- */ @media only screen and (min-width: 360px) and (max-height: 640px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 3){ /* стили */ } @media only screen and (min-width: 360px) and (max-height: 640px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 3){ /* стили */ }
Сервисы по проверке сайта на адаптивность:
- http://adaptivator. ru
- http://iloveadaptive.com
- Google PageSpeed
СSS3 Правило @media — Справочник CSS
❮ Назад CSS Справочник Далее ❯
Пример
Изменить цвет фона элемента <body> на «lightblue», когда окно браузера будет иметь ширину 600 пикселей или меньше:
@media only screen and (max-width: 600px) {
body {
background-color: lightblue;
}
}
Редактор кода »
Определение и использование
Правило @media
используется в запросах мультимедиа для применения различных стилей для различных типов носителей/устройств.
Медиа-запросы могут использоваться для проверки многих вещей, таких как:
- ширина и высота окна просмотра
- ширина и высота устройства
- ориентация (планшет/телефон находится в альбомном или портретном режиме?)
- разрешение
Использование медиа-запросов популярный метод обеспечения адаптированной таблицы стилей (адаптивного веб-дизайна) для настольных компьютеров, ноутбуков, планшетов и мобильных телефонов.
Вы также можете использовать запросы мультимедиа, чтобы указать, что определенные стили предназначены только для печатных документов или для чтения с экрана (тип носителя: print, screen, или speech).
В дополнение к типам носителей, есть также функции мультимедиа. Функции мультимедиа предоставляют более подробные сведения для запросов мультимедиа, позволяя тестировать определенные функции пользовательского агента или устройства отображения. Например, стили можно применять только к тем экранам, которые больше или меньше определенной ширины.
Поддержка браузеров
Числа в таблице указывают первую версию браузера, которая полностью поддерживает правило @media.
Свойство | |||||
---|---|---|---|---|---|
@media | 21 | 9 | 3.5 | 4.0 | 9 |
CSS Синтаксис
@media not|only mediatype
CSS-Code;
}
значение слова not, only и and ключевое слово:
not: Ключевое слово not возвращает значение всего запроса мультимедиа.
only: Ключевое слово only предотвращает применение указанных стилей в старых браузерах, которые не поддерживают запросы мультимедиа с функциями мультимедиа. Это не влияет на современные браузеры.
and: Ключевое слово and объединяет функцию мультимедиа с типом мультимедиа или другими функциями мультимедиа.
Все они являются необязательными. Однако, если вы используете not или only, также необходимо указать тип носителя.
Вы также можете иметь разные stylesheets для различных мультимедиа носителей, как это:
<link rel=»stylesheet» media=»screen and (min-width:
900px)» href=»widescreen.css»>
<link rel=»stylesheet» media=»screen and (max-width:
600px)» href=»smallscreen.css»>
….
Media Types
Значение | Описание |
---|---|
all | По умолчанию. Используется для всех устройств типа носитель |
Используется для принтеров | |
screen | Использованный для экранов компьютера, планшетов, смарт-телефонов и т. д. |
speech | Используется для чтения с экрана, который «читает» страницу вслух |
Мультимедийные возможности
Значение | Описание |
---|---|
any-hover | Позволяет ли какой-либо доступный механизм ввода пользователю наводить курсор на элементы? (добавлено в Медиа запросы Уровень 4) |
any-pointer | Является ли какой-либо доступный механизм ввода указательным устройством, и если да, то насколько он точен? (добавлено в Медиа запросы Уровень 4) |
aspect-ratio | Соотношение между шириной и высотой окна просмотра |
color | Количество бит на цветовой компонент для устройства вывода |
color-gamut | Приблизительный диапазон цветов, поддерживаемых агентом пользователя и устройством вывода (добавлено в Медиа запросы Уровень 4) |
color-index | Количество цветов, которые может отображать устройство |
grid | Является ли устройство сеткой или растровым изображением |
height | Высота области просмотра |
hover | Позволяет ли основной механизм ввода пользователю наводить курсор на элементы? (добавлено в Медиа запросы Уровень 4) |
inverted-colors | Является ли браузер или базовая ОС инвертирующими цветами? (добавлено в Медиа запросы Уровень 4) |
light-level | Текущий уровень рассеянного света (добавлен в Медиа запросы Уровень 4) |
max-aspect-ratio | Максимальное соотношение между шириной и высотой экрана |
max-color | Максимальное количество бит на цветовой компонент для устройства вывода |
max-color-index | Максимальное количество цветов, которое может отображать устройство |
max-height | Максимальная высота области отображения, например окна браузера |
max-monochrome | Максимальное количество бит на «color» на monochrome (в оттенках серого) устройстве |
max-resolution | Максимальное разрешение устройства, используя dpi или dpcm |
max-width | Максимальная ширина области отображения, например окна браузера |
min-aspect-ratio | Минимальное соотношение между шириной и высотой области отображения |
min-color | Минимальное количество бит на цветовой компонент для устройства вывода |
min-color-index | Минимальное количество цветов, которое может отображать устройство |
min-height | Минимальная высота области отображения, например окна браузера |
min-monochrome | Минимальное количество бит на «color» на monochrome (в оттенках серого) устройстве |
min-resolution | Минимальное разрешение устройства, используя dpi или dpcm |
min-width | Минимальная ширина области отображения, например окна браузера |
monochrome | Количество бит на «цвет» на монохромном (в оттенках серого) устройстве |
orientation | ориентация области просмотра экрана (альбомный или книжный режим) |
overflow-block | Как устройство вывода обрабатывает содержимое, которое переполняет область просмотра экрана вдоль оси блока (добавлен в Медиа запросы Уровень 4) |
overflow-inline | Можно ли прокручивать содержимое, которое переполняет область просмотра экрана вдоль встроенной оси (добавлен в Медиа запросы Уровень 4) |
pointer | Является ли основной входной механизм указательным устройством, и если да, то насколько он точен? (добавлен в Медиа запросы Уровень 4) |
resolution | Разрешение устройства вывода, используя dpi или dpcm |
scan | Процесс сканирования выходного устройства |
scripting | Доступен ли сценарий (например, JavaScript)? (добавлен в Медиа запросы Уровень 4) |
update | Как быстро устройство вывода может изменить внешний вид содержимого (добавлен в Медиа запросы Уровень 4) |
width | Ширина области просмотра экрана |
Примеры
Пример
Скрыть элемент, если ширина браузера составляет 600 пикселей в ширину или меньше:
@media screen and (max-width: 600px) {
div. example {
display:
none;
}
}
Редактор кода »
Пример
Использовать запросы мультимедиа, чтобы установить цвет фона в лавандовый, если видовой экран имеет ширину 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;
}
}
Редактор кода »
Пример
Создать адаптивное меню навигации (отображается горизонтально на больших экранах и вертикально на маленьких экранах):
@media screen and (max-width: 600px) {
.topnav a {
float: none;
width: 100%;
}
}
Редактор кода »
Пример
Использовать запрос мультимедиа для создания адаптивного макета столбцов:
/* На экранах шириной 992px или меньше перейти от четырех столбцов к двум
столбцам */
@media screen and (max-width: 992px) {
. column {
width: 50%;
}
}
/* На экранах шириной 600 пикселей или меньше сделать столбцы стеком
на вершине друг друга, а не рядом друг с другом */
@media screen and (max-width:
600px) {
.column {
width: 100%;
}
}
Редактор кода »
Пример
Использовать медиа-запросы для создания адаптивного веб-сайта:
Редактор кода »
Пример
Медиа-запросы также можно использовать для изменения макета страницы в зависимости от ориентации браузера. Вы можете иметь набор свойств CSS, которые будут применяться только тогда, когда окно браузера шире, чем его высота, так называемая «ландшафтная» ориентация.
Использовать светло-синий цвет фона, если ориентация находится в альбомном режиме:
@media only screen and (orientation:
landscape) {
body {
background-color: lightblue;
}
}
Редактор кода »
Пример
С помощью запросов мультимедиа можно задать зеленый цвет текста при отображении документа на экране и черный при печати:
@media screen {
body {
color: green;
}
}
@media print {
body {
color: black;
}
}
Редактор кода »
Пример
Список, разделенный запятыми: добавить дополнительный медиа-запрос к уже существующему, используя запятую (это будет вести себя как оператор 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;
}
}
Редактор кода »
Связанные страницы
CSS Учебник: CSS Медиа запросы
CSS Учебник: CSS Медиа запросы примеры
RWD Учебник: Адаптивный веб-дизайн с Медиа запросами
JavaScript Учебник: Метод window.matchMedia()
❮ Назад CSS Справочник Далее ❯
css — минимальная и максимальная ширина @Media
спросил
Изменено 1 год, 6 месяцев назад
Просмотрено 1,5 млн раз
У меня есть эта настройка @media
:
HTML :
голова>
CSS :
Экран @media и (минимальная ширина: 769 пикселей) { /* СТИЛИ ЗДЕСЬ */ } Экран @media и (минимальная ширина устройства: 481px) и (максимальная ширина устройства: 768px) { /* СТИЛИ ЗДЕСЬ */ } Только экран @media и (max-device-width: 480px) { /* СТИЛИ ЗДЕСЬ */ }
С этой настройкой работает на iPhone, но не работает в браузере.
Это потому, что у меня уже есть устройство
в мете, и, возможно, вместо этого у меня max-width: 480px
?
- css
- мобильный
- медиа-запросы
8
Я обнаружил, что лучший способ — написать CSS по умолчанию для старых браузеров, поскольку старые браузеры (включая IE 5.5, 6, 7 и 8) не могут читать @media
. Когда я использую @media
, я использую его так: