Медиа запросы в 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 | 3.08 % | -0.02% |
1680×1050 | 2.03 % | -0.25% |
768×1024 | 2.00 % | +0.07% |
1536×864 | 1.93 % | +0.![]() |
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
Выбираем медиа-запросы: min-width CSS или max-width CSS
Мне часто задают вопросы вроде: «Стоит ли использовать медиа-запросы (media queries) min-width или max width CSS? Те, кто знаком с адаптивным дизайном, сочтут этот вопрос странным, так как знают, что все зависит от конкретного случая. Сегодня я рад поделиться с вами собственным мнением о том, что на самом деле означает «зависит от конкретного случая».
- Ориентир на настольные ПК и max-width
- max-width CSS вместо более подходящего решения
- Так что же лучше использовать?
Большая часть разработчиков до сих пор ориентируется только на пользователей ПК. Часто осознание ситуации приходит, когда становится ясно, сколько сил было потрачено впустую на компоненты для ПК, которые все реже востребованы из-за растущего числа мобильных пользователей.
Если дизайн разрабатывался в первую очередь под настольные ПК, значит весь CSS должен быть насыщен объемным кодом для других ключевых точек (breakpoints). Если определенная ширина, заданная для ПК, является точкой отсчета, и мы не станем изменять и переписывать наш CSS, то вполне логично будет поменять в базовых стилях значения ширины окна просмотра на те, которые мы собираемся применять к экранам меньшего размера.
Вот пример, которым я часто пользуюсь (предполагая, что .related принимает форму боковой панели):
.content { width: 60%; } .related { width: 40%; } @media screen and (max-width: 37.4em) { .content, .related { width: 100%; } }
Такой подход при использовании со множеством компонентов может существенно увеличить объем CSS завершенного проекта. Но так как блочные элементы по умолчанию занимают 100% ширины родительского элемента, то разумнее было бы прописать все следующим образом:
@media screen and (min-width: 37.5em) { .content { width: 60%; } .related { width: 40%; } }
Здесь мы используем стандартное положение блочных элементов, и перекрываем их, когда это состояние требуется изменить. Чтобы лучше понять суть всего сказанного, нужно изучить рабочий код таких сайтов.
Есть несколько причин использования в min width CSS и max width CSS:
- Если вы получили дизайн только для настольной версии сайта. Если вы получили настольную версию дизайна и несколько дополнительных вариантов для мобильных устройств. В таких случаях можете использовать max-width, но только временно;
- Вы внедряете адаптивный дизайн в уже работающий сайт, и код его стилей нельзя изменять;
- Вы пытаетесь компенсировать отсутствие медиа-запросов, и пытаетесь реализовать это с помощью CSS вместо JavaScript.
Обращайте внимание на стандартный вариант отображения конкретного элемента. Если вам нужно переписывать стандартное состояние для меньших экранов, то используйте max-width. Если элемент можно использовать на меньших экранах и при стандартном состоянии, применяйте min-width только в тех случаях, когда элемент должен отличаться от стандартного состояния. И конечно же, я рекомендую вам позволить контенту определять, что и как должно происходить.
Таблицы – отличный пример использования CSS div max width для изменения стандартного состояния элемента, чтобы он лучше отображался на маленьких экранах. Представьте таблицу, контента в которой слишком много, чтобы отображать его полностью на маленьких устройствах. В таком случае мы можем применить следующий код:
@media only screen and (max-width: 30em) { .big-table tr, .big-table td { display: block; } }
Этот код позволит нам преобразовать каждую строку (и ячейку) в блок. В результате таблица может стать длинной по вертикали, но зачастую это меньшее из зол. Я имею в виду длинные таблицы, которые приходится прокручивать по горизонтали. В таких ситуациях лучше всего оставить таблицы без изменений, за исключением кода для тех браузеров, которые понимают медиа-запросы, и случаев, когда ширина экрана не превышает определенного значения (30em в нашем случае).
Другие элементы, которые в стандартном состоянии отлично смотрятся на маленьких экранах, нужно изменять лишь по необходимости для экранов большего размера. В таких случаях и применяется min-width.
Вкратце: позвольте стандартному состоянию элементов помочь вам определить, какой медиа-запрос использовать.
Валентин Сейидовавтор-переводчик статьи «Choosing between min-width and max-width media queries»
Правило CSS @media
❮ Предыдущий Полное руководство по CSS Далее ❯
Пример
Измените цвет фона элемента
на «светло-синий», когда окно браузера имеет ширину 600 пикселей или меньше: @media only screen and (max-width: 600px) {
body {
цвет фона: голубой;
}
}
Попробуйте сами »
Другие примеры «Попробуйте сами» ниже.
Определение и использование
Правило @media
используется в медиа-запросах для применения разных стилей для разных типов медиа/устройств.
Медиа-запросы можно использовать для проверки многих вещей, таких как:
- ширина и высота области просмотра
- ширина и высота устройства
- ориентация (планшет/телефон в альбомной или портретной ориентации?) разрешение
Использование медиа-запросов является популярным методом предоставления индивидуального стиля лист (отзывчивый веб-дизайн) на настольные компьютеры, ноутбуки, планшеты и мобильные телефоны.
Вы также можете использовать медиа-запросы, чтобы указать, что определенные стили предназначены только для печатных документов или программ чтения с экрана (тип медиа: печать, экран или речь).
В дополнение к типам носителей существуют также характеристики носителей. Медиа-функции
предоставить более подробную информацию для медиа-запросов, позволяя проверить
специфическая функция пользовательского агента или устройства отображения. Например, вы
может применять стили только к тем экранам, которые больше или меньше, чем
определенной ширины.
Поддержка браузера
Числа в таблице указывают первую версию браузера, которая полностью поддерживает правило @media.
Собственность | |||||
---|---|---|---|---|---|
@медиа | 21 | 9 | 3,5 | 4,0 | 9 |
Синтаксис CSS
@media not|only mediatype и (медиафункция и|или|не mediafeature) {
CSS-код;
}
значение не , только и и ключевых слов:
не: Ключевое слово not инвертирует значение всего медиа запрос.
Только : Ключевое слово only не позволяет старым браузерам, не поддерживающим мультимедийные запросы с мультимедийными функциями, применять указанные стили. Не влияет на современные браузеры.
и: Ключевое слово and объединяет мультимедийную функцию с мультимедийной тип или другие медиа-функции.
Все они необязательны. Однако, если вы используете , а не или только , необходимо также указать тип носителя.
У вас также могут быть разные таблицы стилей для разных носителей, например это:
….
Другие примеры
Пример
Скрыть элемент, если ширина браузера не превышает 600 пикселей: :
никто;
}
}
Попробуйте сами »
Пример
Используйте медиазапросы, чтобы установить лавандовый цвет фона, если окно просмотра
800 пикселей в ширину или шире, до светло-зеленого, если окно просмотра имеет ширину от 400 до 799 пикселей. Если область просмотра меньше 400 пикселей, цвет фона светло-голубой:
body {
цвет фона: голубой;
}
Экран @media и (min-width:
400 пикселей) {
тело {
цвет фона: светло-зеленый;
}
}
@медиа
экран и (минимальная ширина: 800 пикселей) {
тело {
цвет фона: лаванда;
}
}
Попробуйте сами »
Пример
Создайте адаптивное меню навигации (отображаемое горизонтально на больших экранах и вертикально на маленьких экранах):
Экран @media и (максимальная ширина: 600 пикселей) {
.topnav a {
поплавок: нет;
ширина: 100%;
}
}
Попробуйте сами »
Пример
Используйте мультимедийные запросы для создания адаптивного макета столбца:
/* На экранах шириной 992 пикселя или меньше увеличьте количество столбцов с четырех до двух. столбцы */
@media screen и (максимальная ширина: 992 пикселя) {
.column {
ширина: 50%;
}
}
/* На экранах шириной 600 пикселей или меньше сделайте столбцы стопкой
друг над другом, а не рядом */
Экран @media и (max-width:
600px) {
.column {
ширина: 100%;
}
}
Попробуйте сами »
Пример
Используйте медиа-запросы для создания адаптивного веб-сайта:
Попробуйте сами »
Пример
Медиа-запросы также можно использовать для изменения макета страницы в зависимости от макета страницы. в ориентация браузера. У вас может быть набор свойств CSS, которые будут применяются, когда окно браузера шире своей высоты, так называемый «пейзаж» ориентация.
Используйте светло-голубой цвет фона, если ориентация находится в ландшафтном режиме:
Только экран @media и (ориентация:
пейзаж) {
тело {
цвет фона: голубой;
}
}
Попробуйте сами »
Пример
Используйте медиазапросы, чтобы установить зеленый цвет текста, когда документ отображается на экране и становится черным при печати:
@media screen {
body {
цвет: зеленый;
}
}
@media print {
тело {
цвет: черный;
}
}
Попробуйте сами »
Пример
Список, разделенный запятыми : добавьте дополнительный медиазапрос к уже существующему, используя запятую (это будет работать как оператор ИЛИ):
/* Если ширина составляет от 600 до 900 пикселей ИЛИ больше 1 100 пикселей, измените внешний вид
@media screen и (max-width: 900px) и (минимальная ширина: 600 пикселей), (минимальная ширина: 1100 пикселей) {
раздел.

размер шрифта: 50px;
отступ: 50 пикселей;
граница: 8 пикселей, сплошной черный цвет;
фон: желтый;
}
}
Попробуйте сами »
Связанные страницы
Учебник CSS: CSS Media Queries
Учебник CSS: Примеры медиазапросов CSS
Учебник RWD: Отзывчивый веб-дизайн с помощью медиазапросов window02 The00 JavaScript 90 Tutorial 90 Метод .matchMedia()
❮ Предыдущий Полное руководство по CSS Далее ❯
ВЫБОР ЦВЕТА
Лучшие учебники
Учебное пособие по HTMLУчебное пособие по CSS
Учебное пособие по JavaScript
Учебное пособие
Учебное пособие по SQL
Учебное пособие по Python
Учебное пособие по W3.CSS
Учебное пособие по Bootstrap
Учебное пособие по PHP
Учебное пособие по Java
Учебное пособие по C++
Учебное пособие по jQuery
902 02
Справочник по HTML
Справочник по CSS
Справочник по JavaScript
Справочник по SQL
Справочник по Python
Справочник по W3. CSS
Справочник по Bootstrap
Справочник по PHP
Цвета HTML
Справочник по Java
Справочник по Angular
Справочник по jQuery
Лучшие примеры
Примеры HTMLПримеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3.CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery
FORUM | О
W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания. Используя W3Schools, вы соглашаетесь прочитать и принять наши условия использования, куки-файлы и политика конфиденциальности.
Copyright 1999-2023 Refsnes Data. Все права защищены.
W3Schools работает на основе W3.CSS.
Медиа-запросы CSS3 — примеры
❮ Предыдущий Далее ❯
Медиа-запросы CSS — дополнительные примеры
Давайте рассмотрим еще несколько примеров использования медиа-запросов.
Медиа-запросы — популярный метод доставки адаптированной таблицы стилей на различные устройства. Чтобы продемонстрировать простой пример, мы можем изменить цвет фона для разных устройств:
Пример
/* Установите цвет фона тела на коричневый */
body {
цвет фона: коричневый;
}
/* Вкл.
экраны с разрешением 992 пикселя или меньше установите синий цвет фона */
@media
экран и (максимальная ширина: 992 пикселя) {
тело {
цвет фона: синий;
}
}
/* На экранах с разрешением 600 пикселей и меньше
установить
цвет фона на оливковый */
@media screen and (max-width: 600px) {
body {
background-color: оливковый;
}
}
Попробуйте сами »
Вам интересно, почему мы используем именно 992px и 600px? Это то, что мы называем «типичными точками останова» для устройств. Вы можете узнать больше о типичных точках останова в нашем учебнике по адаптивному веб-дизайну.
Медиа-запросы для меню
В этом примере мы используем медиа-запросы для создания адаптивного меню навигации, которое варьируется в дизайне на разных размерах экрана.
Большие экраны:
Главная Ссылка 1 Ссылка 2 Ссылка 3
Маленькие экраны:
Главная Ссылка 1 Ссылка 2 Ссылка 3
Пример
/* Контейнер панели навигации */
.topnav {
overflow: hidden;
цвет фона: #333;
}
/* Ссылки на панели навигации */
.topnav a {
с плавающей запятой:
левый;
отображение: блок;
цвет:
белый;
выравнивание текста: по центру;
отступ: 14 пикселей 16 пикселей;
text-decoration: нет;
}
/* На экранах шириной 600 пикселей или меньше, сделать так, чтобы ссылки меню располагались сверху
друг друга, а не рядом друг с другом */
@media screen and (max-width: 600px) {
.topnav a {
float: нет;
ширина:
100%;
}
}
Попробуйте сами »
Медиа-запросы для столбцов
Медиа-запросы обычно используются для создания гибкого макета. В этом примере мы создаем макет, который может состоять из четырех, двух и полноразмерных столбцов в зависимости от размера экрана:
Большие экраны:
Средние экраны:
Маленькие экраны:
Пример
/* Создаем четыре одинаковых столбца, которые плавают рядом друг с другом */
.column {
плыть налево;
ширина: 25 %;
}
/* На экранах с разрешением 992 пикселя
широкий или менее, перейти от
четыре столбца в два столбца */
@media screen and (max-width: 992px) {
.column {
ширина: 50 %;
}
}
/* На экранах,
600 пикселей в ширину или меньше, сделайте
столбцы располагаются друг над другом, а не рядом */
@media screen and (max-width: 600px) {
.column {
width:
100%;
}
}
Попробуйте сами »
Совет: Более современный способ создания макетов столбцов — использование CSS Flexbox (см. пример ниже).
Однако он не поддерживается в Internet Explorer 10 и более ранних версиях. Если вам требуется поддержка IE6-10, используйте числа с плавающей запятой (как показано выше).
Чтобы узнать больше о модуле Flexible Box Layout, прочитайте нашу главу CSS Flexbox.
Чтобы узнать больше об адаптивном веб-дизайне, прочитайте наш учебник по адаптивному веб-дизайну.
Пример
/* Контейнер для флексбоксов */
.row {
display: flex;
flex-wrap: обернуть;
}
/* Создать четыре одинаковых столбца */
.column {
flex: 25%;
отступ: 20 пикселей;
}
/* На экранах шириной 992 пикселя или меньше перейдите от
четыре столбца в два столбца */
@media screen and (max-width: 992px) {
.column {
flex: 50%;
}
}
/* На экранах шириной 600 пикселей или меньше сделайте
столбцы располагаются друг над другом, а не рядом друг с другом */
Экран @media и (максимальная ширина: 600 пикселей) {
. row {
flex-направление: столбец;
} }
}
Попробуйте сами »
Скрытие элементов с помощью медиа-запросов
Другое распространенное использование медиа-запросов — скрытие элементов на экранах разных размеров:
Я буду скрыт на маленьких экранах.
Пример
/* Если размер экрана меньше 600 пикселей, скрыть элемент */
@media
экран и (максимальная ширина: 600 пикселей) {
div.example {
дисплей: нет;
}
}
Попробуйте сами »
Изменение размера шрифта с помощью мультимедийных запросов
Вы также можете использовать мультимедийные запросы для изменения размера шрифта элемента на различные размеры экрана:
Пример
/* Если размер экрана больше 600 пикселей в ширину, установите размер шрифта
@media screen и (min-width: 600px) {
div.

размер шрифта: 80px;
}
}
/* Если размер экрана составляет 600 пикселей в ширину или меньше, установите размер шрифта
Экран @media и (максимальная ширина: 600 пикселей) {
div.example {
размер шрифта: 30px;
}
}
Попробуйте сами »
Гибкая галерея изображений
В этом примере мы используем мультимедийные запросы вместе с flexbox для создания адаптивной галереи изображений: Веб-сайт
В этом примере мы используем медиа-запросы вместе с flexbox для создания адаптивного веб-сайта, содержащего гибкую панель навигации и гибкий контент.
Пример
Попробуйте сами »
Ориентация: Книжная/Пейзажная
Медиа-запросы также можно использовать для изменения макета страницы в зависимости от ориентация браузера.
У вас может быть набор свойств CSS, которые будут применяются, когда окно браузера шире своей высоты, так называемый «пейзаж» ориентация:
Пример
Использовать светло-голубой цвет фона, если ориентация в ландшафтном режиме:
Только экран @media и (ориентация:
пейзаж) {
тело {
фоновый цвет: голубой;
}
}
Попробуйте сами »
От минимальной ширины до максимальной ширины
Вы также можете использовать значения (max-width: .
. ) и (min-width: .3 ) от 5 до .3 . установить минимальную ширину и максимальную ширину.
Например, когда ширина браузера составляет от 600 до 900 пикселей, измените внешний вид элемента
Пример
Экран @media и (max-width: 900px) и (min-width: 600px) {
раздел.пример {
размер шрифта: 50px;
отступ: 50 пикселей;
граница: 8 пикселей, сплошной черный цвет;
фон: желтый;
}
}
Попробуйте сами »
Использование дополнительного значения: В приведенном ниже примере мы добавляем дополнительный медиазапрос к нашему уже существующий с использованием запятой (будет вести себя как оператор ИЛИ):
Пример
/* Когда ширина находится в диапазоне от 600 до 900 пикселей ИЛИ выше 1100 пикселей - изменить внешний вид
Экран @media и (максимальная ширина: 900 пикселей) и (минимальная ширина: 600px), (минимальная ширина: 1100px) {
div.
