html — Медиа запрос не работает в Chrome
html — Медиа запрос не работает в Chrome — Stack Overflow на русскомStack Overflow на русском — это сайт вопросов и ответов для программистов. Присоединяйтесь! Регистрация займёт не больше минуты.
Присоединиться к сообществуЛюбой может задать вопрос
Любой может ответить
Лучшие ответы получают голоса и поднимаются наверх
Вопрос задан
Просмотрен 2k раз
Нужно на странице budova. org применять такой код В firefox всё прекрасно работает, а вот хром не хочет. Что я мог упустить?
body {
margin: 0;
padding: 0;
font-family: 'Exo 2', sans-serif;
text-decoration: none;
background: #fff
}
a {
text-decoration: none;
color: #666666;
}
.layout {
width: 96%;
padding: 0 2% 0 2%;
overflow: hidden;
}
.layout .col div {
margin: 0 10px;
padding: 10px;
background: #fff;
color: #000;
}
.layout div img {
width: 100%;
border: 1px solid #bfbfbf;
}
.layout div h3 {
font-size: 16px;
text-align: center;
}
#logo {
margin: 45px auto;
}
.col:hover {
border: 1px solid #bfbfbf;
margin: 0px;
}
.col {
float: left;
margin: 1px;
width: 24%;
}
@media all and (max-width: 900px) {
. col {
float: left;
width: 48%;
height: 257px;
background: red;
}
}
@media all and (max-width: 700px) {
.col {
float: left;
width: 48%;
height: 200px;
background: green;
}
}
Air<!DOCTYdivE html> <html> <head> <meta charset="utf-8" /> <title>Инженерные системы ЛТД - простые решения для Вашего дома!</title> <link rel="stylesheet" tydive="text/css" href="css.css" /> <link href="https://fonts.googleapis.com/css?family=Exo+2" rel="stylesheet"> <link href="https://unpkg.com/[email protected]/dist/css/micron.min.css" type="text/css" rel="stylesheet"> <script src="https://unpkg.com/[email protected]/dist/script/micron.min.js" type="text/javascript" async></script> </head> <body> <header> <div align="center"> <img src="images/logo.
png" ; alt="Logo IS" /> </div> </header> <div> <div align="center"> <div> <a href="https://devi.kiev.ua/" target="_blank"> <div><img data-micron="jelly" src="images/devi.png" alt="devi" /></div> <h3>Тёплый пол DEVI</h3> </a> </div> </div> <div align="center"> <div> <a href="http://vac.budova.org/" target="_blank"> <div><img data-micron="jelly" src="images/vac.png" alt="пылесос" /></div> <h3>Центральный пылесос</h3> </a> </div> </div> <div align="center"> <div> <a href="http://carrera.budova.org/" target="_blank"> <div><img data-micron="jelly" src="images/carrera. png" alt="carrera" /></div> <h3>Конвекторы Carrera</h3> </a> </div> </div> <div align="center"> <div> <a href="https://devi.kiev.ua/snegotayanie/snegotayanie.html" target="_blank"> <div><img data-micron="jelly" src="images/devi-ice.png" alt="Снеготаяние devi" /></div> <h3>Снеготаяние DEVI</h3> </a> </div> </div> <div align="center"> <div> <a href="http://potopa.net.ua/" target="_blank"> <div><img data-micron="jelly" src="images/potopa.png" alt="Защита от потопа" /></div> <h3>Защита от потопа</h3> </a> </div> </div> <div align="center"> <div> <a href="https://devi. kiev.ua/informatsiya/veria-2.html" target="_blank"> <div><img data-micron="jelly" src="images/veria.png" alt="VERIA" /></div> <h3>Тёплый пол VERIA</h3> </a> </div> </div> <div align="center"> <div> <a href="http://danfoss.biz.ua/" target="_blank"> <div><img data-micron="jelly" src="images/danfoss.png" alt="Danfoss" /></div> <h3>Продукция Danfoss</h3> </a> </div> </div> <div align="center"> <div> <a href="http://airelec.com.ua/" target="_blank"> <div><img data-micron="jelly" src="images/6.png" alt="Airelec" /></div> <h3>Конвекторы Airelec</h3> </a> </div> </div> </div> <div></div> </body> </html>
13. 9k66 золотых знаков3131 серебряный знак5959 бронзовых знаков
задан 15 мар ’18 в 10:32
Kyzka ValeraKyzka Valera355 бронзовых знаков
4- Исправьте
<!DOCTYdivE html>
на<!DOCTYPE html>
( не относится к делу) - Добавьте в
head
<meta name="viewport" content="width=device-width, initial-scale=1">
- CTRL+F5
ответ дан 15 мар ’18 в 10:39
Node_proNode_pro7,84444 золотых знака2929 серебряных знаков4848 бронзовых знаков
6 Highly active question. Earn 10 reputation (not counting the association bonus) in order to answer this question. The reputation requirement helps protect this question from spam and non-answer activity.Ваша конфиденциальность
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей [Политикой в отношении файлов cookie] (https://stackoverflow.com/legal/cookie-policy).
Принять все файлы cookie Настроить параметры
Медиа-запросы | htmlbook.
ruInternet Explorer | Chrome | Opera | Safari | Firefox | Android | iOS |
9.0+ | 1.0+ | 10.0+ | 4.0+ | 3.6+ | 2.0+ | 2.0+ |
Краткая информация
Версии CSS
Описание
Наряду с типами носителей в CSS3 включена поддержка различных технических параметров устройств, на основе которых требуется загружать те или иные стили. К примеру, можно определить смартфон с максимальным разрешением 640 пикселов и для него установить одни стилевые свойства, а для остальных устройств другие. Также можно выявить различные характеристики вроде наличия монохромного экрана, ориентации (портретная или альбомная) и др. Все характеристики легко комбинируются, поэтому допустимо задать стиль только для устройств в альбомной ориентации с заданным разрешением экрана.
Возможности медиа-запросов не ограничиваются выявлением мобильных устройств, с их помощью можно создавать адаптивный макет. Такой макет подстраивается под разрешение монитора и окна браузера, меняя при необходимости ширину макета, число колонок, размеры изображений и текста. Медиа-запросы ограничивают ширину макета и при достижении этого значения (к примеру за счёт уменьшения окна или при просмотре на устройстве с указанным размером) уже применяется другой стиль.
Синтаксис
Все запросы начинаются с правила @media, после чего следует условие, в котором используются типы носителей, логические операторы и медиа-функции. Типы носителей перечислены в табл. 1.
Тип | Описание |
---|---|
all | Все типы. Это значение используется по умолчанию. |
braille | Устройства, основанные на системе Брайля, которые предназначены для чтения слепыми людьми. |
embossed | Принтеры, использующие для печати систему Брайля. |
handheld | Смартфоны и аналогичные им аппараты. |
Принтеры и другие печатающие устройства. | |
projection | Проекторы. |
screen | Экран монитора. |
speech | Речевые синтезаторы, а также программы для воспроизведения текста вслух. Сюда, например, можно отнести речевые браузеры. |
tty | Устройства с фиксированным размером символов (телетайпы, терминалы, устройства с ограничениями дисплея). |
tv | Телевизоры. |
Логические операторы, применяемые в медиа-запросах
and
Логическое И. Указывается для объединения нескольких условий.
Пример. Стиль для всех цветных устройств
@media all and (color) { ... }
not
Логическое НЕ. Указывается для отрицания условия.
Пример. Стиль для всех устройств кроме смартфонов
@media all and (not handheld) { ... }
Оператор not имеет низкий приоритет и оценивается в запросе последним, поэтому выражение
@media not all and (color) { . .. }
следует понимать как
@media not (all and (color)) { ... }
а не
@media (not all) and (color) { ... }
only
Применяется для старых браузеров, которые не поддерживают медиа-запросы.
Пример. Стиль для новых браузеров
@media only all and (not handheld) { ... }
В списке нет логического оператора ИЛИ, его роль выполняет запятая. Перечисление нескольких условий через запятую говорит о том, что если хотя бы одно условие выполняется, то стиль будет применён.
Пример. Стиль для устройств с альбомной ориентацией или минимальной шириной 480 пикселов.
@media all and (orientation: landscape), all and (min-width: 480px) { ... }
Также при использовании операторов следует указывать скобки, чтобы менять приоритет операций.
Медиа-функции
Медиа-функции задают технические характеристики устройства, на котором отображается документ. Стиль выполняется в том случае, если запрос возвращает истину, иными словами, указанные условия выполняются.
Большинство функций содержат приставку 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. Стиль для цветных устройств
@media screen and (color) { /* Для цветных экранов */
body { background: #fc0; }
}
@media screen and (min-color:3) { /* Минимум 512 цветов */
body { background: #ccc; }
}
color-index (min-color-index, max-color-index)
Тип носителя: handheld, print, projection, screen, tty, tv
Значение: целое число
Определяет количество цветов, которое поддерживает устройство. В примере 2 показан стиль для экранов отображающих не меньше 256 цветов.
Пример 2. Цветной дисплей
@media all and (min-color-index: 256) {
...
}
device-aspect-ratio (min-device-aspect-ratio, max-device-aspect-ratio)
Тип носителя: handheld, print, projection, screen, tty, tv
Значение: целое число/целое число
Определяет соотношение сторон экрана устройства. Значение указывается в виде двух целых чисел разделяемых между собой слэшем (/). В примере 3 показано, как установить стиль для экранов с соотношением сторон 16:9 и более.
Пример 3. «Киношное» соотношение
@media screen and (min-device-aspect-ratio: 16/9) {
...
}
device-height (min-device-height, max-device-height)
Тип носителя: все кроме speech
Значение: размер
Определяет всю доступную высоту экрана устройства или печатной страницы.
device-width (min-device-width, max-device-width)
Тип носителя: все кроме speech
Значение: размер
Определяет всю доступную ширину экрана устройства или печатной страницы. В примере 4 в зависимости от разрешения монитора устанавливается ширина слоя. Так, для значения 1280 пикселов ширина макета задаётся как 1100px.
Пример 4. Ширина макета
HTML5CSS3IECrOpSaFx
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Ширина макета</title>
<style>
div {
padding: 10px;
background: #e8bfad;
margin: auto;
}
@media screen and (min-device-width: 1600px) {
div {width: 1500px;}
}
@media screen and (device-width: 1280px) {
div {width: 1100px;}
}
@media screen and (device-width: 1024px) {
div {width: 980px;}
}
</style>
</head>
<body>
<div>
Диабаз, формируя аномальные геохимические ряды, сменяет известняк,
образуя на границе с Западно-Карельским поднятием своеобразную систему грабенов.
</div>
</body>
</html>
grid
Тип носителя: all
Значение: нет
Определяет, что это устройство с фиксированным размером символов. Размеры букв на таком устройстве занимают одинаковую ширину и высоту и выстраиваются по заданной сетке. К подобным устройствам можно отнести терминалы, а также телефоны, которые поддерживают только один шрифт.
Если вам требуется форматировать текст, не указывайте его размер в пикселах, для подобных устройств используется единица em (пример 5).
Пример 5. Размер букв
HTML5CSS3IECrOpSaFx
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Стиль для бабушкофона</title>
<style>
@media handheld and (grid) and (max-width: 15em) {
body { font-size: 2em; }
}
</style>
</head>
<body>
<p>Привет! Как дела? Как сажа бела?</p>
</body>
</html>
height (min-height, max-height)
Тип носителя: все кроме speech
Значение: размер
Высота отображаемой области.
monochrome (min-monochrome, max-monochrome)
Тип носителя: handheld, print, projection, screen, tty, tv
Значение: целое число
Определяет, что устройство монохромное. Если указано число, то оно обозначает число бит на пиксел. Так, значение 8 равнозначно 256 оттенкам серого (или другого цвета). В примере 6 показан стиль для монохромного и цветного принтера.
Пример 6. Стиль для принтера
@media print and (monochrome) {
body { font-family: Times, 'Times New Roman', serif; }
h2, h3, p { color: black; }
}
@media print and (color) {
body { font-family: Arial, Verdana, sans-serif; }
h2, h3, p { color: #556b2f; }
}
orientation
Тип носителя: handheld, print, projection, screen, tty, tv
Значение: landscape | portrait
Определяет, что устройство находится в альбомном режиме (ширина больше высоты) или портретном (ширина меньше высоты).
В примере 7 устанавливается разная фоновая картинка в случае альбомной (landscape) или портретной ориентации (portrait).
Пример 7. Использование ориентации устройства
@media screen and (orientation: landscape) {
#logo { background: url(logo1.png) no-repeat; }
}
@media screen and (orientation: portrait) {
#logo { background: url(logo2.png) no-repeat; }
}
resolution (min-resolution, max-resolution)
Тип носителя: handheld, print, projection, screen, tv
Значение: разрешение в dpi (точек на дюйм) или dpcm (точек на сантиметр)
Определяет разрешение устройства, например, принтера. В примере 8 стиль будет работать для принтера с минимальным разрешением 300 точек на дюйм.
Пример 8. Разрешение принтера
@media print and (min-resolution: 300dpi) {
...
}
scan
Тип носителя: tv
Значение:
interlace | progressive
Определяет тип развертки телевизора — череcстрочная (interlace) или прогрессивная (progressive). При чересстрочной развёртке телевизор вначале показывает нечётные строки кадра, затем чётные, что позволяет сократить передаваемые данные. В прогрессивной развёртке кадр передаётся и показывается целиком.
width (min-width, max-width)
Тип носителя: все кроме speech
Значение: размер
Описывает ширину отображаемой области. Это может быть окно браузера или печатная страница. В примере 9 при уменьшении окна до 600 пикселов и меньше меняется цвет фона веб-страницы.
Пример 9. Использование max-width
HTML5CSS3IECrOpSaFx
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Ширина страницы</title>
<style>
body { background: #f0f0f0; }
@media screen and (max-width: 600px) {
body { background: #fc0; }
}
</style>
</head>
<body>
<p>Пока магма остается в камере, мусковит сингонально поднимает шток,
в то время как значения максимумов изменяются в широких пределах. </p>
</body>
</html>
html — Медиа-запросы не работают на телефонах
У меня проблема с медиа-запросами (при первом использовании). http://swiatek.org.pl/-2/ Они работают, когда я меняю окно браузера, но когда я смотрю, проверить панель инструментов устройства на хром медиа-запросах не работает :(. CSS: http://swiatek.org.pl/-2/main.css
0
Vane 1 Авг 2018 в 21:22
3 ответа
Лучший ответ
Замещать
@media screen and (max-width: 1000px)
С участием
@media only screen and (max-width: 1000px)
И заменить
@media screen and (max-width: 880px)
С участием
@media only screen and (max-width: 880px)
0
عبدالرحمان 1 Авг 2018 в 18:32
Добавьте слово «только» при объявлении медиаэкранов.
@media only screen and (max-width: 880px) {
#first header{
font-size: 55px;
}
}
Вы можете узнать больше об этом здесь: https://www.w3schools.com/cssref/css3_pr_mediaquery. жерех
0
Weisen 1 Авг 2018 в 18:28
Вам не хватает метатега, добавьте это в свой заголовок.
<meta name="viewport" content="width=device-width, initial-scale=1">
0
Dejan.S 1 Авг 2018 в 18:29
CSS: Правило @media | медиа запросы
CSS предоставляет способ отображения содержимого веб-страницы по разному, в зависимости от устройства, на котором оно просматривается, или разрешения экрана (размера области просмотра в браузере) без необходимости изменения самого содержимого. Медиа запросы состоят из выражения, которое ограничивает область действия таблицы стилей и самой таблицы стилей, размещаемой в фигурных скобках.
Синтаксис
@media тип_устройства and|not|only (медиа_особенности) { CSS код; }
Также можно включать различные стили для различных устройств вывода информации с помощью атрибута media тега link:
<link rel="stylesheet" media="тип_устройства and|not|only (медиа_особенности)" href="stylesheet.css">
Типы устройств
Тип | Описание |
---|---|
all | Используется для всех типов устройств. |
aural | Используется для синтезаторов речи и звука. |
braille | Используется для тактильной обратной связи устройств Брайля. |
embossed | Используется для принтеров Брайля. |
handheld | Используется для небольших или портативных устройств. |
Используется для принтеров | |
projection | Используется для презентаций, таких как слайды. |
screen | Используется для экранов компьютеров, планшетов, смартфонов и т.д. |
speech | Используется для речевых браузеров. |
tty | Используется для носителей, использующих сетки с фиксированным шагом символов, такие как телетайпы и терминалы. |
tv | Используется для телеэкранов. |
К сожалению тип устройства дает слишком мало информации, поэтому редко используется по прямому назначению. Современные смартфоны и планшеты, ноутбуки и настольные компьютеры идентифицируют себя как тип screen. Поэтому тип носителя обычно используется для различения экранных версий документа от печатных, что позволяет совершенно по разному их оформлять:
/* только для печати */ @media print { /* скрыть меню */ #navigation { display: none; } /* начинать каждую новую страницу с заголовка h2 */ h2 { page-break-before: always; } }
Особенности устройств для медиа запросов
Особенность | Описание |
---|---|
aspect-ratio | Определяет соотношение ширины и высоты области просмотра. Значение состоит из двух положительных чисел, разделенных прямой косой чертой (слэшем). Первое число представляет собой количество пикселей по горизонтали, второе по вертикали. Может иметь префикс «min» или «max». |
color | Определяет количество бит на цвет для устройства. Может иметь префикс «min» или «max». |
color-index | Указывает количество цветов, которое устройство может отображать. Может иметь префикс «min» или «max». |
device-aspect-ratio | Определяет соотношение ширины и высоты устройства вывода. Значение состоит из двух положительных чисел, разделенных прямой косой чертой (слэшем). Первое число представляет собой количество пикселей по горизонтали, второе по вертикали. Может иметь префикс «min» или «max». |
device-height | Указывает высоту устройства, такого как экран компьютера (имеется в виду весь экран или страницу, а не только область просмотра). Может иметь префикс «min» или «max». |
device-width | Указывает ширину устройства, такого как экран компьютера (имеется в виду весь экран или страницу, а не только область просмотра). Может иметь префикс «min» или «max». |
grid | Определяет как устроен вывод у устройства: на основе сетки или точечный. Если устройство на основе сетки (например, терминал, телетайп или дисплей телефона, поддерживающий только один шрифт), то значение 1, в противном случае значением будет 0. |
height | Указывает высоту области просмотра, например, окно браузера. Может иметь префикс «min» или «max». |
monochrome | Указывает количесвто бит на пиксель для устройств с монохромными экранами. Может иметь префикс «min» или «max». |
orientation | Указывает в каком режиме просмотра находится дисплей: ландшафтном (ширина дисплея больше, чем высота) или портретном (высота дисплея больше, чем ширина). |
resolution | Указывает разрешение (плотность пикселей) устройства вывода. Может быть указана в dpi (точек на дюйм) или в dpcm (точек на сантиметр). Может иметь префикс «min» или «max». |
scan | Определяет процесс сканирования телевизионных устройств вывода. |
width | Указывает ширину области просмотра, например, окно браузера. Может иметь префикс «min» или «max». |
Наиболее важными из особенностей устройств для медиа запросов являются min-width и max-width, позволяющие создавать гибкие конструкции, в которых изменение макета сайта происходит на основе области просмотра браузера, установленного на устройстве.
Медиа запросы сочетают в себе тип устройства и условие, состоящее из одной или нескольких особенностей устройства. Например правила в следующем запросе применяются только при просмотре на экране с минимальной шириной области просмотра 600px:
@media screen and (min-width: 600px) {}
Медиа запросы не чувствительны к регистру, но скобки вокруг условия являются обязательной частью синтаксиса запроса. Оператор and здесь используется для объединения типа устройства с условием, но он также может объединять несколько особенностей устройства вместе:
@media (max-width: 500px) and (min-aspect-ratio: 1/1) {}
Этот медиа запрос имеет значение true, если устройство для просмотра имеет максимальное разрешение области просмотра 500px и соотношение сторон 1:1 (квадрат или ландшафтный просмотр). Обратите внимание, что в этом запросе нет типа устройства, поэтому это правило будет применяться ко всем типам устройств.
Логические операторы
В дополнение к логическому оператору and (и), медиа запросы могут включать в себя логическое not (не), only (только) и or (или). Запятая (,) используется в качестве оператора or, то есть каждый запрос рассматривается индивидуально. Это означает, что с помощью запросов, разделенных запятой, можно одно правило @media ориентировать на различные типы устройств и их особенности.
Следующее правило @media применяется либо к устройству с минимальной областью просмотра 700px в ширину, либо если устройство находится в ландшафтном режиме просмотра:
@media (min-width: 700px), (orientation: landscape) {}
Оператор not используется для отрицания условий медиа запроса. Соответствующие стили применяются, если устройство не соответствует указанным вслед за not параметрам. Например следующее правило применяется только в том случае, если экран устройства не 800px в ширину:
@media not screen and (device-width: 800px) {}
Оператор only применяется, когда нужно скрыть правило @media от старых браузеров, которые не поддерживают описываемый синтаксис. Браузеры, которые поддерживают медиа запросы, оператор only просто проигнорируют.
/* Не работает в старых браузерах */ @media only screen and (min-width: 600px) {}
Обзор. Разметка · Bootstrap. Версия v4.0.0
Компоненты и опции для создания вашего проекта Bootstrap, включая контейнеры для упаковки, мощную сетчатую систему, гибкий медиа-объект и гибкие классы полезности.
Контейнеры
Это базовый элемент в Bootstrap и они необходимы при использовании нашей стандартной сеточной системы. Выбирайте отзывчивый, с фиксированной шириной (что значит, что его max-width
изменяется на каждом брейкпойнте) или контейнер с плавающей шириной (width ==100%
всегда).
Контейнеры могут иметь вложенные элементы, но в большинстве случаев можно обойтись без них.
<div>
<!-- Content here -->
</div>
Используйте . container-fluid
для создания контейнера полной ширины, занимающий 100% зоны просмотра.
<div>
...
</div>
Отзывчивые брейкпойнты
Поскольку Bootstrap разработан как mobile-first, тут используются медиа-запросы @media для создания брейкпойнтов контента и интерфейсов. Эти брейкпойнты в основном сделаны на минимальных широтах зоны просмотра и позволяют масштабировать элементы по мере изменения размера зоны просмотра.
В исходниках Sass Bootstrap главным образом записаны следующие ранги @media (брейкпойнты) для разметки, сеточной системы и компонентов.
// Экстрамалые девайсы («телефоны»,
// Малые девайсы («ландшафтные телефоны», >= 576px)
@media (min-width: 576px) { ... }
// Средние девайсы («таблетки», >= 768px)
@media (min-width: 768px) { ... }
// Большие девайсы (десктопы, >= 992px)
@media (min-width: 992px) { . .. }
// Экстрабольшие девайсы (большие десктопы, >= 1200px)
@media (min-width: 1200px) { ... }
Так как все эти параметры записаны в исходниках как Sass, все @media доступны через миксины:
@include media-breakpoint-up(xs) { ... }
@include media-breakpoint-up(sm) { ... }
@include media-breakpoint-up(md) { ... }
@include media-breakpoint-up(lg) { ... }
@include media-breakpoint-up(xl) { ... }
// Example usage:
@include media-breakpoint-up(sm) {
.some-class {
display: block;
}
}
По случаю можно использовать и другие размеры (max-width: 575px == «данный размер или меньше»):
// Экстрамалые девайсы («телефоны», @media (max-width: 575.98px) { ... }
// Малые девайсы («ландшафтные», @media (max-width: 767.98px) { ... }
// Средние девайсы («таблетки», @media (max-width: 991. 98px) { ... }
// Большие девайсы (большие десктопы, @media (max-width: 1199.98px) { ... }
// Экстрабольшие девайсы (большие десктопы)
// Тут нет @media, т.к. такие брейпкойнты не имеют верхней границы по ширине width
Обратите внимание, что поскольку браузеры в настоящее время не поддерживают запросы диапазона, мы используем ограничения min-
и max-
prefixes префиксов и видовых экранов с дробной шириной (что может произойти при определенных условиях на устройствах с высоким разрешением на дюйм, например), используя значения с более высоким точность для этих сравнений.
Опять же, эти @media доступны через Sass миксины:
@include media-breakpoint-down(xs) { ... }
@include media-breakpoint-down(sm) { ... }
@include media-breakpoint-down(md) { ... }
@include media-breakpoint-down(lg) { ... }
Также в наличии @media и миксины размеров экрана, использующие минимальные и максимальные ширины брейкпойнтов.
// Экстрамалые девайсы («портретные телефоны», @media (max-width: 575.98px) { ... }
// Малые девайсы («ландшафтные», >= 575px)
@media (min-width: 576px) and (max-width: 767.98px) { ... }
// Средние девайсы («таблетки», >= 768px)
@media (min-width: 768px) and (max-width: 991.98px) { ... }
// Большие девайсы (большие десктопы, >= 992px)
@media (min-width: 992px) and (max-width: 1199.98px) { ... }
// Большие девайсы (большие десктопы, >= 1200px)
@media (min-width: 1200px) { ... }
Эти @media также доступны из миксинов Sass:
@include media-breakpoint-only(xs) { ... }
@include media-breakpoint-only(sm) { ... }
@include media-breakpoint-only(md) { ... }
@include media-breakpoint-only(lg) { ... }
@include media-breakpoint-only(xl) { ... }
Также, @media могут занимать несколько значений ширин брейкпойнта:
// Пример
// Здесь стили применятся от средних девайсов до XL-девайсов
@media (min-width: 768px) and (max-width: 1199. 98px) { ... }
Миксины Sass для захвата таких же параметров (выше) выглядели бы так:
@include media-breakpoint-between(md, xl) { ... }
Z-индекс
Несколько компонентов Bootstrap используют данный индекс z-index
, т.е. свойство CSS, которое помогает контролировать расположение контента с помощью третьей оси. В Bootstrap используется «стандартный» Z-индекс, спроектированный для правильного расположения навигации, всплывающих подсказок, всплывающих окон и т.н. “modals” (pop-up окно наверху страницы).
Эти высшие значения могут начинаться с любого числа, в идеале достаточно большого и специфичного, чтобы избежать конфликтов. Нам нужен стандартный набор этих чисел для использования с нашими компонентами: всплывающими подсказками, окнами, навбарами, выпадающими элементами, модальными элементами — так, чтобы мы могли бы разумно стандардартизировать их поведение. Не существует ограничений — используйте хоть 100
, хоть 500
и более.
Мы не советуем настраивать эти значения самому, т.к. если потребуется изменить одно, придется менять все.
$zindex-dropdown: 1000 !default;
$zindex-sticky: 1020 !default;
$zindex-fixed: 1030 !default;
$zindex-modal-backdrop: 1040 !default;
$zindex-modal: 1050 !default;
$zindex-popover: 1060 !default;
$zindex-tooltip: 1070 !default;
Для того, чтобы эффективно обращаться с перекрывающимися границами внутри компонентов (например, кнопки и формы ввода в группах форм ввода), мы используем по умолчанию значения z-index 1,2,3
, а также hover и «активные состояния». В hover/focus/active мы подводим частный элемент к «переднему краю» использованием более высокого z-индекса
, для показа его границы над вложенными элементами.
Media Query не работает | Практические шаги по устранению неисправности
Для облегчения доступа и удобочитаемости контент сайта должен подстраиваться под экраны всех типов и размеров. Таким образом, одним из средств, с помощью которого веб-дизайнеры достигают этого, является использование метода CSS под названием Media Query . Хотя этот метод помогает стилизовать страницу в зависимости от ориентации (альбомной или портретной) устройства или размера экрана, у вас могут возникнуть проблемы с получением медиа-запросов для работы на вашем сайте WP.
Если это так, у вас есть два варианта: попробуйте исправить это самостоятельно или попросите опытного эксперта по WP, чтобы решить эту проблему. . Последний вариант намного лучше, если вам неудобно работать с кодами или вам просто нужно дополнительное время, чтобы сосредоточиться на более продуктивных задачах.
В этом посте мы кратко рассмотрим, что такое медиа-запрос, когда его следует использовать и что делать, если он не работает.
Содержание:
Определение и использование медиа-запросов CSS
Во-первых, мы познакомим вас со структурой запросов CSS Media. Однако, если вы просто хотите узнать, что делать, если ваш медиа-запрос не работает, перейдите к соответствующему разделу ниже.
Как мы упоминали ранее, Media Query — это метод CSS (каскадные таблицы стилей), используемый для настройки внешнего вида (размера шрифта, цветовых стилей и т. Д.) Содержимого страницы для разных размеров экрана и разрешения.
Основная цель каждого владельца веб-сайта — предложить лучший опыт каждому, кто его посещает. Пользователи настольных компьютеров должны иметь хороший пользовательский интерфейс, также как и пользователи iPhone и смартфонов.
Вот здесь и появляется медиа-запрос. По сути, он сообщает браузеру, что делать, когда мобильное устройство используется для просмотра страницы, и что делать, когда используется более крупное устройство.
Это простой пример медиа-запроса:
@media screen и (max-width: 480px)
{
header {height: 70px; }
статья {font-size: 14px; }
img {max-width: 480px; }
}
Они могут быть вставлены в HTML-код веб-страницы или объявлены отдельным лицом. CSS файл. Вот несколько вариантов использования медиа-запросов:
- Регулировка ширины столбца в зависимости от размера экрана устройства: можно использовать медиа-запросы CSS для настройки ширины столбцов и связанных с ними элементов . Это обеспечит лучший пользовательский опыт для всех посетителей.
- Изменение макетов: вы также можете использовать медиа-запрос CSS для преобразования макета с двумя столбцами в макет с одним столбцом для мобильных устройств .
- Перемещение боковой панели: объявляя медиа-запрос, вы можете указать браузеру переместить боковую панель под содержание сайта, когда страница просматривается на мобильном устройстве или когда она находится в портретном режиме.
Синтаксис медиа-запросов
Чтобы правильно использовать медиа-запросы, важно понимать их синтаксис.
Медиа-запрос состоит из следующих четырех элементов:
- @media rule
- Тип носителя (необязательно)
- Логические операторы
- Выражения медиа-характеристик.
@media правило:
Первое, что нужно сделать при настройке медиа-запроса в CSS, — это объявить, что вы собираетесь делать .Для этого введите @media без пробелов между ними.
Тип носителя:
Следующим элементом, который следует правилу @media, является тип носителя . Это относится к типу устройства, для которого вы настраиваете запрос. Типы носителей включают:
все : этот тип носителя подходит для всех устройств . Если вы не используете конкретный тип мультимедиа, например: @media (max-width: 480px), будет подразумеваться «все» .
Печать : Этот тип носителя используется, когда вы намереваетесь настроить медиа-запрос для постраничных материалов и документов в режиме предварительного просмотра печати .
Экран : Этот тип носителя используется для экранов. Следующие правила CSS будут применяться к экранам — мобильных устройств, планшетов, настольных компьютеров и т. Д. Это наиболее часто используемый тип мультимедиа.
Speech: Это предназначено для программ чтения с экрана.
Характеристики мультимедиа:
Медиа-функции дают более подробную информацию . Например, вы можете применить стиль к экранам с максимальной шириной 600 пикселей (мобильные устройства).В данном случае max-width — это мультимедийная функция, используемая для таргетинга на мобильные телефоны.
Итак, вот несколько мультимедийных функций и их функций:
- Высота — описывает высоту области просмотра
- Max-height — максимальная высота окна браузера.
- Width — Ширина области просмотра
- Max-width — эта функция мультимедиа определяет максимальную ширину окна браузера.
- Min-height — определяет минимальную высоту окна браузера.
- Ориентация — это относится к ориентации области просмотра.
Для пояснения, каждое выражение медиа-функции должно быть заключено в квадратные скобки.
Логические операторы
При составлении сложных медиа-запросов вам понадобятся логические операторы, такие как: not, and, and only . Вы также можете присоединиться к нескольким медиа-запросам, используя запятую.
и : оператор « и» объединяет 2 или более мультимедийных функций для формирования единого мультимедийного запроса . Он также используется для объединения типов мультимедиа с мультимедийными функциями.
, а не : логический оператор «not» отменяет медиа-запрос . При использовании оператора not необходимо указать тип носителя.
Только: этот оператор помогает предотвратить неправильную интерпретацию медиа-запроса старыми браузерами. Если вы не используете «только», медиа-запросы могут не работать в старых браузерах.
Они могут интерпретировать ‘screen и (max-width: 767px)’ как ‘screen’, тем самым применяя запрос ко всем экранам. Обратите внимание, что этот оператор не влияет на современные браузеры .При использовании оператора «only» также необходимо указать тип носителя.
, (запятая) : запятые используются для объединения 2 или более медиа-запросов в одно правило. Это означает, что когда несколько запросов разделяются запятой, каждый из них обрабатывается отдельно от другого. Таким образом, если один запрос в списке верен, весь медиа-запрос остается верным.
Типичный пример медиа-запроса
Если вам все еще интересно, как выглядит медиа-запрос, вы можете увидеть множество из них в стиле.css адаптивной темы WordPress. Они начинаются с @media и обычно располагаются внизу таблиц стилей .
Это связано с тем, что правила внизу таблицы стилей перезапишут правила наверху (за исключением того, что вы используете тег! Important, чтобы этого не произошло). Вот пример:
@media only screen and (max-width: 600px) {
body {
background-color: green;
}
}
В приведенном выше примере запрос уже устанавливает условие, в котором четко указано «изменить цвет фона элемента
на зеленый, когда размер экрана составляет 600 пикселей или меньше.Таким образом, даже если ваш фоновый цвет изначально был установлен на «белый», дизайн изменится на «зеленый» для мобильных устройств из-за медиа-запроса. Таким образом, «600 пикселей» — это точка останова, когда ваш элемент дизайна будет вести себя иначе.
Вот еще один пример:
@media screen и (max-width: 850px) {
.column {
width: 50%;
}
}
@media экран и (максимальная ширина: 600 пикселей) {
.столбец {
ширина: 100%;
}
}
Первый медиа-запрос сообщает браузеру, что ширина столбца должна составлять 50% от окна браузера или контейнера, когда экран составляет 850 пикселей и ниже.
Второй медиа-запрос дополнительно указывает браузеру установить ширину столбца на 100%, когда ширина экрана составляет 600 пикселей и ниже. В следующем разделе объясняется, что делать, если медиа-запрос не работает.
Как исправить неработающие медиа-запросы
При работе с медиа-запросами возможны ошибки.Однако иногда медиа-запросы могут не работать вообще, в других случаях они могут не работать на мобильных устройствах или настольных компьютерах.
Итак, после настройки ваших медиа-запросов, и они не работают, сделайте следующее:
Убедитесь, что он установлен правильно
Иногда ваш медиа-запрос не работает из-за неправильной позиции.
В идеале медиа-запросы следует размещать в конце таблицы стилей. Как известно, браузеры читают таблицы стилей сверху вниз. Итак, коды в конце таблицы стилей переопределяют объявления, сделанные в начале (кроме случаев, когда! Important используется для принудительной реализации кода).
Кроме того, медиа-запросов для небольших запросов следует размещать перед большими экранами . См. Следующие строки:
body {
background-color: серый;
}
@media screen и (min-width: 480px) {
body {
background-color: green;
}
}
@media screen и (min-width: 850px) {
body {
background-color: lightblue;
выравнивание текста: по центру;
}
}
Первое правило устанавливает серый цвет фона страницы, если он меньше 480 пикселей. Затем медиазапросы устанавливают зеленый фон для экранов размером 480–849 пикселей и устанавливают светло-голубой цвет фона, а также выравнивают текст по центру — для экранов размером 850 пикселей и более.
CSS объявлен встроенным
Это может быть причиной того, что ваши медиа-запросы не работают. То есть вы могли объявить CSS в своем HTML-документе . Поэтому, если это так, просто просмотрите HTML-документ и удалите CSS, объявленный встроенным.
В качестве альтернативы вы можете переопределить встроенный CSS с помощью! Important.В результате это может решить проблему «медиа-запрос CSS не работает».
Допустим, вы пытаетесь изменить цвет текста для абзацев на мобильных устройствах на черный с помощью этих строк CSS.
@ экран мультимедиа и (максимальная ширина: 1024 пикселя) {
p {
цвет: черный;
}
}
Но это не работает, вероятно, из-за того, что к тому же элементу применен встроенный стиль.Таким образом, вы можете добавить! Important к этому правилу, чтобы он переопределил встроенный стиль следующим образом:
@media screen и (max-width: 1024px) {
p {
color: black! важный;
}
}
Итак, это должно решить проблему с медиа-запросами.
К более раннему объявлению прикреплен! Important.
Как мы видели выше,! Important может переопределять другие стили, даже встроенные стили, установленные для элемента. Если вы также использовали! Important ранее в своей электронной таблице для элемента, медиа-запросы, объявленные после этого, не будут работать. .
Итак, проще всего найти и удалить его, чтобы ваши медиа-запросы заработали.
Медиа-запрос не работает на рабочем столе
В идеале ваши медиа-запросы должны работать как на мобильных устройствах, так и на настольных компьютерах. Но если они не работают на настольных компьютерах, используйте в качестве мультимедийной функции max-width вместо max-device-width.Итак, вот разница между ними.
Max-device-width: Это относится к фактическому размеру экрана устройства.
Max Width: Это относится к размеру области отображения устройства (окна браузера).
Итак, допустим, максимальная ширина устройства установлена на 600 пикселей. Он не будет работать на настольном устройстве (даже если вы уменьшите размер окна браузера до 600 пикселей), потому что размер экрана устройства превышает 600 пикселей.
Однако, если вы используете max-width, вы получите лучший результат, поскольку он определяет область отображения браузера, а не весь размер экрана устройства.
Медиа-запрос не работает на мобильных устройствах
Если медиа-запросы работают на настольных компьютерах, а не на мобильных устройствах, то, скорее всего, вы не установили область просмотра и масштаб по умолчанию.
Для этого добавьте одну из следующих строк кода в заголовок вашего сайта в элементе
:
Или
Примечание. Вам нужно добавить только одну из приведенных выше строк кода, и обычно первая выполняет свою работу.
Свойство width определяет размер области просмотра и имеет значение device-width, что указывает браузеру отображать веб-сайт такой же ширины, как и естественная.
Свойство initial-scale определяет уровень масштабирования при первой загрузке страницы пользователем.
Заключение
В связи с быстрым ростом числа пользователей мобильного Интернета владельцы сайтов должны серьезно относиться к адаптивному дизайну.Мы уже упоминали, что один из способов сделать вашу веб-страницу удобной для мобильных устройств и адаптируемой — это использовать медиа-запрос.
Медиа-запросы также довольно легко настроить. Однако, если вам нужна дополнительная помощь, свяжитесь с нами или оставьте комментарий ниже.
Прочитайте больше полезных статей:Использование медиа-запросов — CSS: каскадные таблицы стилей
Медиа-запросы полезны, когда вы хотите изменить свой сайт или приложение в зависимости от общего типа устройства (например, печать илиэкран) или конкретные характеристики и параметры (например, разрешение экрана или ширина области просмотра браузера).
Медиа-запросы используются для следующих целей:
Примечание: Примеры на этой странице используют CSS @media
в иллюстративных целях, но основной синтаксис остается одинаковым для всех типов медиа-запросов.
Медиа-запрос состоит из необязательного типа носителя и любого количества выражений мультимедийной характеристики . Несколько запросов можно комбинировать различными способами, используя логические операторы .Медиа-запросы нечувствительны к регистру.
Медиа-запрос вычисляется как истина, если тип мультимедиа (если указан) соответствует устройству, на котором отображается документ. и все выражения мультимедийных характеристик вычисляются как истинные. Запросы с неизвестными типами носителей всегда ложны.
Примечание: Таблица стилей с медиа-запросом, прикрепленным к ее тегу
, все равно будет загружаться, даже если запрос вернет false. Тем не менее, его содержимое не будет применяться до тех пор, пока результат запроса не изменится на true.
Типы носителей
Типы носителей описывают общую категорию устройства. За исключением случаев, когда используются логические операторы , а не
или , только
, тип носителя является необязательным, и подразумевается, что - все типы
.
-
все
- Подходит для всех устройств.
-
печать
- Предназначен для постраничного материала и документов, просматриваемых на экране в режиме предварительного просмотра печати. (Информацию о проблемах форматирования, характерных для этих форматов, см. На страничном носителе.)
-
экран
- Предназначен в первую очередь для экранов.
-
речь
- Предназначен для синтезаторов речи.
tty
, tv
, projection
, handheld
, braille
, с тиснением
и aural
), но они устарели в Media Queries 4 и не должны использоваться.Тип слуховой
был заменен на аналогичный речевой
.Функции мультимедиа
Функции мультимедиа описывают конкретные характеристики пользовательского агента, устройства вывода или среды. Выражения медиа-функций проверяют их наличие или ценность и являются совершенно необязательными. Каждое выражение медиа-функции должно быть заключено в круглые скобки.
Имя | Резюме | Банкноты |
---|---|---|
любое наведение | Позволяет ли какой-либо доступный механизм ввода наводить курсор на элементы? | Добавлено в Media Queries Level 4. |
любой указатель | Имеется ли какой-либо доступный механизм ввода — указывающее устройство, и если да, то насколько он точен? | Добавлено в медиа-запросы уровня 4. |
соотношение сторон | Соотношение ширины и высоты области просмотра | |
цвет | Число битов на компонент цвета устройства вывода или ноль, если устройство не цветное | |
цветовая гамма | Приблизительный диапазон цветов, поддерживаемых пользовательским агентом и устройством вывода | Добавлено в Media Queries Level 4. |
индекс цвета | Число записей в поисковой таблице цветов устройства вывода или ноль, если устройство не использует такую таблицу | |
соотношение сторон устройства | Соотношение ширины и высоты устройства вывода | Не рекомендуется в запросах СМИ уровня 4. |
высота устройства | Высота поверхности рендеринга устройства вывода | Не рекомендуется в медиа-запросах уровня 4. |
ширина устройства | Ширина поверхности рендеринга устройства вывода | Не рекомендуется в запросах СМИ уровня 4. |
режим отображения | Режим отображения приложения, как указано в манифесте веб-приложения display member | Определено в спецификации манифеста веб-приложения. |
принудительные цвета | Определить, ограничивает ли пользовательский агент цветовую палитру | Добавлено в Media Queries Level 5. |
сетка | Использует ли устройство сетку или растровый экран? | |
высота | Высота области просмотра | |
парение | Позволяет ли основной механизм ввода пользователю наводить курсор на элементы? | Добавлено в медиа-запросы уровня 4. |
инвертированные цвета | Инвертирует ли цвета пользовательский агент или базовая ОС? | Добавлено в Media Queries Level 5. |
монохромный | Бит на пиксель в буфере монохромного кадра устройства вывода или ноль, если устройство не монохромное | |
ориентация | Ориентация области просмотра | |
блок переполнения | Как устройство вывода обрабатывает контент, который выходит за пределы области просмотра по оси блока? | Добавлено в Media Queries Level 4. |
переполнение в линию | Можно ли прокручивать содержимое, которое выходит за пределы области просмотра вдоль встроенной оси? | Добавлено в медиа-запросы уровня 4. |
указатель | Является ли основной механизм ввода указательным устройством, и если да, то насколько он точен? | Добавлено в медиа-запросы уровня 4. |
предпочитает цветовую схему | Определить, предпочитает ли пользователь светлую или темную цветовую схему | Добавлено в Media Queries Level 5. |
предпочитает контраст | Определяет, запросил ли пользователь систему увеличения или уменьшения контрастности между соседними цветами | Добавлено в Media Queries Level 5. |
предпочитает уменьшенное движение | Пользователь предпочитает меньше движения на странице | Добавлено в Media Queries Level 5. |
разрешение | Плотность пикселей устройства вывода | |
скрипты | Определяет, выполняются ли сценарии (т.е.е. JavaScript) доступно | Добавлено в Media Queries Level 5. |
обновить | Как часто устройство вывода может изменять внешний вид контента | Добавлено в медиа-запросы уровня 4. |
ширина | Ширина области просмотра, включая ширину полосы прокрутки |
Логические операторы
Логические операторы , а не
, и
, и только
могут использоваться для составления сложного медиа-запроса.Вы также можете объединить несколько медиа-запросов в одно правило, разделив их запятыми.
и
Операторы и
используются для объединения нескольких мультимедийных функций в один мультимедийный запрос, требуя, чтобы каждая связанная функция возвращала истину, чтобы запрос был истинным. Он также используется для объединения функций мультимедиа с типами мультимедиа.
не
Оператор , а не
используется для отрицания медиа-запроса, возвращая истину, если в противном случае запрос вернул бы ложь.Если он присутствует в списке запросов, разделенных запятыми, он будет отрицать только конкретный запрос, к которому он применяется. Если вы используете оператор , а не
, вы должны также указать тип носителя.
Примечание: На уровне 3 ключевое слово , а не
нельзя использовать для отрицания отдельного выражения мультимедийной функции, только для всего мультимедийного запроса.
только
Оператор only
используется для применения стиля, только если весь запрос соответствует, и полезен для предотвращения применения выбранных стилей в старых браузерах.Если не использовать только
, старые браузеры будут интерпретировать экран запроса и (max-width: 500px)
как экран
, игнорируя оставшуюся часть запроса и применяя его стили на всех экранах. Если вы используете оператор only
, вы должны также указать тип носителя.
,
(запятая) Запятые используются для объединения нескольких медиа-запросов в одно правило. Каждый запрос в списке, разделенном запятыми, обрабатывается отдельно от других.Таким образом, если какой-либо из запросов в списке верен, весь оператор мультимедиа возвращает истину. Другими словами, списки ведут себя как логический оператор или
.
Типы носителей описывают общую категорию данного устройства. Хотя веб-сайты обычно разрабатываются с учетом экранов, вы можете создать стили, ориентированные на специальные устройства, такие как принтеры или программы чтения с экрана на основе звука. Например, этот CSS нацелен на принтеры:
Вы также можете настроить таргетинг на несколько устройств. Например, это правило @media
использует два медиа-запроса для таргетинга как на экранные, так и на печатающие устройства:
@media screen, print {...}
Список всех типов носителей см. В разделе «Типы носителей». Поскольку они описывают устройства очень широко, доступны лишь некоторые из них; для нацеливания на более конкретные атрибуты используйте вместо этого медиа-функции .
Функции мультимедиа описывают конкретные характеристики данного пользовательского агента, устройства вывода или среды. Например, вы можете применить определенные стили к широкоэкранным мониторам, компьютерам, использующим мыши, или устройствам, которые используются в условиях низкой освещенности.В этом примере применяются стили, когда основной механизм ввода пользователя (например, мышь) может наводить курсор на элементы:
@media (hover: hover) {...}
Многие мультимедийные функции — это , диапазон функций , что означает, что они могут иметь префикс «min-» или «max-» для выражения ограничений «минимального условия» или «максимального условия». Например, этот CSS будет применять стили только в том случае, если ширина области просмотра вашего браузера равна или меньше 12450 пикселей:
@media (max-width: 12450px) {...}
Если вы создаете запрос мультимедийной функции без указания значения, вложенные стили будут использоваться до тех пор, пока значение функции не равно нулю (или нет
на уровне 4). Например, этот CSS будет применяться к любому устройству с цветным экраном:
Если функция не применяется к устройству, на котором запущен обозреватель, выражения, включающие эту мультимедийную функцию, всегда ложны. Например, стили, вложенные в следующий запрос, никогда не будут использоваться, потому что ни одно устройство только для речи не имеет соотношения сторон экрана:
@media Speech and (соотношение сторон: 11/5) {...}
Дополнительные примеры мультимедийных функций см. На справочной странице для каждой конкретной функции.
Иногда может потребоваться создать медиа-запрос, который зависит от нескольких условий. Вот где используются логические операторы : , а не
, и
, а - только
. Кроме того, вы можете объединить несколько медиа-запросов в список , разделенных запятыми, ; это позволяет применять одни и те же стили в разных ситуациях.
В предыдущем примере мы уже видели операторы и
, используемые для группировки носителя типа с функцией носителя .Операторы и
также могут объединить несколько мультимедийных функций в один мультимедийный запрос. Между тем, оператор , а не
, отменяет медиа-запрос, в основном меняя его обычное значение. Оператор only
не позволяет более старым браузерам применять стили.
Примечание: В большинстве случаев тип носителя all
используется по умолчанию, если другой тип не указан. Однако, если вы используете , а не
или , только операторы
, вы должны явно указать тип носителя.
Объединение нескольких типов или функций
Ключевое слово и
объединяет функцию мультимедиа с типом носителя или другими функциями мультимедиа. В этом примере объединены две мультимедийные функции для ограничения стилей для устройств с альбомной ориентацией и шириной не менее 30 ems:
@media (min-width: 30em) и (ориентация: альбомная) {...}
Чтобы ограничить стили устройствами с экраном, вы можете связать функции мультимедиа с экраном
Тип носителя:
@media screen и (min-width: 30em) и (ориентация: альбомная) {...}
Тестирование для нескольких запросов
Вы можете использовать список, разделенный запятыми, для применения стилей, когда устройство пользователя соответствует любому из различных типов, функций или состояний мультимедиа. Например, следующее правило будет применять свои стили, если устройство пользователя имеет минимальную высоту 680 пикселей или является экранным устройством в портретном режиме:
@media (min-height: 680px), экран и (ориентация: книжная) {...}
В приведенном выше примере, если у пользователя есть принтер с высотой страницы 800 пикселей, оператор мультимедиа вернет истину, потому что будет применяться первый запрос.Точно так же, если бы пользователь находился на смартфоне в портретном режиме с высотой области просмотра 480 пикселей, будет применяться второй запрос, и оператор мультимедиа все равно вернет истину.
Инвертирование значения запроса
Ключевое слово , а не
инвертирует значение всего медиа-запроса. Он только аннулирует конкретный медиа-запрос, к которому он применяется. (Таким образом, это не будет применяться к каждому медиа-запросу в списке медиа-запросов, разделенных запятыми.) Ключевое слово , а не
не может использоваться для отрицания отдельного запроса функции, только всего медиа-запроса., а не
, оценивается последним в следующем запросе:
@media not all and (монохромный) {...}
… так что вышеупомянутый запрос оценивается так:
@media not (all and (монохромный)) {...}
… а не так:
@media (не все) и (монохромный) {...}
В качестве другого примера приведем следующий медиа-запрос:
@media not screen and (color), print and (color) {...}
… оценивается так:
@media (not (screen and (color))), print and (color) {...}
Улучшение совместимости со старыми браузерами
Ключевое слово only
предотвращает использование старых браузеров, которые не поддерживают медиа-запросы с мультимедийные функции от применения заданных стилей. Не влияет на современные браузеры.
@media only screen and (color) {...}
Спецификация Media Queries Level 4 включает некоторые улучшения синтаксиса, чтобы сделать медиа-запросы с использованием функций, которые имеют тип «диапазон», например ширину или высоту, менее подробными.Уровень 4 добавляет контекст диапазона для написания таких запросов. Например, используя функциональность max-
для ширины, мы можем написать следующее:
Примечание: Спецификация Media Queries Level 4 имеет разумную поддержку в современных браузерах, но некоторые мультимедийные функции не поддерживаются должным образом. См. Более подробную информацию в таблице совместимости браузеров @media
.
@media (max-width: 30em) {...}
В Media Queries Level 4 это можно записать как:
@media (ширина <= 30em) {...}
Используя min-
и max-
, мы можем проверить ширину между двумя значениями, например:
@media (min-width: 30em) и (max-width: 50em) {...}
Это преобразует синтаксис уровня 4 как:
@media (30em <= width <= 50em) {...}
Media Queries Level 4 также добавляет способы комбинировать медиа-запросы с использованием полной логической алгебры с и , не и или .
Отрицание признака с
not
Использование not ()
вокруг мультимедийного объекта отменяет этот признак в запросе. Например, not (hover)
будет соответствовать, если у устройства нет возможности зависания:
@media (not (hover)) {...}
Тестирование нескольких функций с помощью
или
Вы можете использовать или
для проверки совпадения более чем одной функции, получив значение true
если какая-либо из характеристик верна.Например, следующие тесты запросов для устройств с монохромным дисплеем или возможностью наведения:
@media (not (color)) or (hover) {...}
CSS медиа-запроса не работает для изменения размера изображения на мобильных устройствах и планшетах
Сидди(@sidharthuseagility)
Привет @victoriagreenphotography
Вы пытаетесь установить только минимальную ширину только с помощью экрана @media и (min-width: 500px) Вы можете написать свой CSS по умолчанию Вот так.
Надеюсь, это вам поможет.
Спасибо!
- Этот ответ был изменен 1 год, 1 месяц назад пользователем Jan Dembowski. Причина: форматирование
Здравствуйте! Спасибо, что поделились всеми этими вариантами. Я новичок во всем этом. Я записал их.
Какой CSS из списка лучше всего подходит для того, чтобы сказать, что мне нужно изображение меньшего размера на планшетах и мобильных устройствах?
Кроме того, я был в веб-инспекторе (у меня Mac на сафари), и я думаю, что изображение со мной на домашней странице с камерой называется ‘.DSC_0483 ’. Это звучит для вас правильно? Надеюсь, я смотрю в нужном месте в веб-инспекторе, поскольку это было совсем не очевидно (в отличие от клипов на YouTube!)
Спасибо за помощь,
Виктория
Сидди(@sidharthuseagility)
@victoriagreenphotography В соответствии с вашими требованиями, я пишу ниже для всех планшетов и мобильных устройств, которые помогут вам. максимальная ширина устройства составляет 480 пикселей для мобильных устройств, кроме этого максимума 1024 пикселей - это последняя максимальная ширина экрана планшета.
Внизу он будет охватывать все виды планшетов с альбомной ориентацией, планшеты с портретной ориентацией.
Надеюсь, это вам поможет спасибо
- Этот ответ был изменен 1 год, 1 месяц назад пользователем Siddy.
- Этот ответ был изменен 1 год, 1 месяц назад пользователем Siddy.
Ах, спасибо, Сид, в этом есть смысл. Извини, что не понял раньше.
Не могли бы вы помочь мне с определением имени изображения (изображение домашней страницы, на котором я держу камеру) для использования в CSS, поскольку у меня это имя .DSC_0483, но я думаю, что это может быть неправильно.
Большое спасибо - очень признателен за вашу помощь и опыт,
Виктория
медиа-запросов CSS3: простые ошибки и простые исправления
Если вы веб-дизайнер (ругаетесь себе под нос) и пытаетесь выяснить, что, черт возьми, пошло не так в вашем адаптивном веб-дизайне, вы можете найти ответ в этом руководстве.
Иногда, когда адаптивный дизайн выходит из строя, дает простой ответ! Это может быть ошибка медиа-запроса CSS3, настолько простая, что вы просто ее не заметили.
Если вы новичок в медиа-запросах, подумайте о том, чтобы сначала прочитать CSS3 Media Queries for Beginners.
В противном случае возьмите чашку кофе и ознакомьтесь с «Простые ловушки» ниже. Возможно, вы слишком задумываетесь о проблеме.
Знаете ли вы?
- Медиа-запросы состоят из медиа-типа и могут содержать одно или несколько выражений, которые разрешаются либо в истинное, либо в ложное.
- Если медиазапрос верен, применяются соответствующие правила стиля в соответствии с обычными правилами каскадирования.
- Одновременно может выполняться более одного медиа-запроса.
- Вы можете добавить сколько угодно точек останова.
- Медиа-запрос оборачивается обычными селекторами CSS. Вам необходимо определить по крайней мере один селектор в медиа-запросе.
- Порядок имеет значение. CSS обрабатывается сверху вниз. Любые свойства, указанные более одного раза, будут принимать последнее указанное значение.
- Если вы примените два правила, которые сталкиваются с одними и теми же элементами, будет выбрано последнее из объявленных правил, если первое не имеет маркера! Important или более конкретное.
- Медиа-запросы не поддерживаются IE 8 и более ранними версиями.
- Медиа-запросы нечувствительны к регистру.
- Медиа-запросы имеют фигурные скобки.
4 ошибки, связанные с простыми медиа-запросами
Попался # 1 (метатег области просмотра)
Как правило, наиболее распространенной ошибкой является отсутствие метатега области просмотра .Если вы протестируете свои медиа-запросы CSS на мобильном устройстве, вы не увидите медиа-запросы, примененные изначально без этого тега .
По умолчанию мобильные устройства уменьшают масштаб веб-страниц при их просмотре. В результате сайт кажется меньше.
Метатег области просмотра позволяет изменять «виртуальную область просмотра» мобильных устройств. С помощью метатега области просмотра мы можем указать мобильному устройству, например iPhone, отображать страницу без масштабирования.
Это метатег области просмотра:
Не забудьте добавить этот тег в раздел HEAD вашей страницы.Устанавливая начальную шкалу на 1, мы контролируем начальный уровень масштабирования страницы.
Попался # 2 (синтаксическая ошибка)
Эта синтаксическая ошибка может озадачить вас не один раз. Это так просто, но нелегко заметить после долгого дня работы с исходным кодом.
Отсутствие пробела между "и", выражение не допускается. Если там нет места, ваш медиа-запрос не будет работать.
Пример синтаксической ошибки: @media all и (цвет) {…}
ВАЖНО: Также убедитесь, что вы каким-то образом не УДАЛИЛИ окончание CURLY BRACE в одном из ваших медиа-запросов.Убедитесь, что у каждого открывающегося КЛЮЧЕВОГО СОЕДИНЕНИЯ есть КОНЕЦ. В противном случае ваша веб-страница может выглядеть в браузере полной неразберихой.
Попался №3 (включая медиа-запросы)
Inclusive Media Queries может иногда вызывать неожиданное поведение в веб-браузере. Когда вы делаете одну и ту же точку останова верхней границей одного медиа-запроса и нижней границей другого, оба медиа-запроса будут срабатывать, когда ширина области просмотра точно соответствует этой точке останова. Иногда это может привести к неожиданному поведению, потому что оба медиа-запроса принимают истинное значение одновременно, на крошечный момент.
@media screen и (max-width: 767px) {
h2 {font-size: 20px;}
}
@media screen и (min-width: 767px) {
h2 {font-size: 40px;}
}
Попался №4 (специфика и порядок приоритета)
Когда мы говорим о «Порядок приоритета» в CSS, есть общее правило. CSS обрабатывается сверху вниз. Любые свойства, указанные более одного раза, будут принимать последнее указанное значение. Когда селекторы имеют одинаковое значение специфичности, учитывается последнее правило.
h4 {цвет: красный;}
h4 {цвет: зеленый;}
Одно правило говорит, что ваш тег h4 должен быть красным, другое правило говорит, что он зеленый. Правила противоречат друг другу. Будет применен второй.
Если два селектора применяются к одному и тому же элементу, выигрывает тот, у которого более высокая специфичность.
Специфика CSSчасто является причиной того, что ваши правила CSS не применяются к некоторым элементам, хотя вы думаете, что должны. Каждый селектор имеет свое место в иерархии специфики.
Узнайте больше о порядке приоритета CSS в «Плавном переходе от CSS к CSS3».
Вы могли подумать, что правила внутри медиа-запросов будут иметь некоторый приоритет над другими правилами стиля в той же таблице стилей, но это не так. Сами медиа-запросы не имеют специфики.
@media screen и (max-device-width: 767px) {
h2 {font-size: 40px;}
}
h2 {font-size: 80px;}
В приведенном выше примере медиа-запрос с правилом стиля внутри указан перед простым правилом стиля.Селекторы имеют одинаковое значение специфичности, поэтому учитывается последнее правило. H2 будет 80 пикселей.
Не забудьте поместить свои медиа-запросы ниже в таблице стилей, чтобы они переопределяли правила, перечисленные над ними.
ID Селекторы имеют более высокую специфичность, чем все другие селекторы. Попробуйте использовать ID для повышения специфичности. Это самый важный селектор в правиле стиля.
div # feature span {color: green}
div span {color: blue}
span {color: red}
Независимо от порядка, текст будет зеленым, потому что это правило является наиболее конкретным.(Кроме того, правило для синего заменяет правило для красного.)
Таким образом, если ваша веб-страница не делает то, что, по вашему мнению, она должна, остановитесь и поищите простые «Пробелы».
- Не забудьте добавить метатег области просмотра в раздел заголовка своей веб-страницы.
- Ищите простые синтаксические ошибки в каскадной таблице стилей. Это может быть так же просто, как убрать фигурную скобку из медиа-запроса или забыть поставить пробел после «и» в медиа-запросе.
- Затем рассмотрите селекторы, которые вы используете в своей таблице стилей, порядок, в котором вы их используете, и таблицу стилей, в которой они размещены.Надеюсь, это крошечная ошибка, которую вы просто не заметили.
медиа-запросов CSS
Введенные типы носителей CSS2
Правило @media
, введенное в CSS2, позволило определить разные правила стиля для разных типов мультимедиа.
Примеры: у вас может быть один набор правил стиля для экранов компьютеров, один для принтеры, один для портативных устройств, один для телевизионных устройств и т. д.
К сожалению, эти типы носителей никогда не получали большой поддержки со стороны устройств, другие чем тип печатного носителя.
CSS3 Представленные медиа-запросы
Медиа-запросы в CSS3 расширили идею CSS2 типов мультимедиа: вместо поиска типа устройства, они смотрят на возможности устройство.
Медиа-запросы могут использоваться для проверки многих вещей, например:
- ширина и высота области просмотра
- ширина и высота устройства
- ориентация (планшет / телефон в альбомной или книжной ориентации?)
- разрешение
Использование медиа-запросов - популярный метод предоставления индивидуального стиля лист на настольные компьютеры, ноутбуки, планшеты и мобильные телефоны (например, iPhone и телефоны Android).
Поддержка браузера
Числа в таблице указывают первую версию браузера, полностью поддерживающую правило @media
.
Имущество | |||||
---|---|---|---|---|---|
@media | 21,0 | 9,0 | 3,5 | 4,0 | 9,0 |
Синтаксис медиа-запроса
Медиа-запрос состоит из медиа-типа и может содержать один или несколько выражения, которые принимают значение true или false.
@media not | только mediatype и ( выражений ) {
CSS-Code;
}
Результат запроса: истина, если указанный тип носителя соответствует типу устройства, на котором находится документ отображается, и все выражения в медиа-запросе верны. Когда медиа-запрос верен, соответствующая таблица стилей или правила стилей применяется, следуя обычным правилам каскадирования.
Если вы не используете операторы not или only, тип носителя является необязательным, а будут подразумеваться все типы
.
У вас также могут быть разные таблицы стилей для разных носителей:
mediatype and | not | only ( выражений )" href = " print.css ">
CSS3 Типы носителей
Значение | Описание |
---|---|
все | Используется для всех типов носителей |
печать | Используется для принтеров |
экран | Используется для экранов компьютеров, планшетов, смартфонов и т. Д. |
речь | Используется для программ чтения с экрана, которые «читают» страницу вслух |
Медиа-запросы Простые примеры
Один из способов использования медиа-запросов - иметь альтернативный раздел CSS прямо внутри таблицы стилей.
В следующем примере цвет фона меняется на светло-зеленый, если область просмотра имеет ширину 480 пикселей или шире (если область просмотра меньше 480 пикселей, цвет фона будет розовый):
Пример
@media screen и (min-width: 480px) {
body {
background-color: lightgreen;
}
}
В следующем примере показано меню, которое будет перемещаться слева от страницы, если область просмотра имеет ширину 480 пикселей или шире (если область просмотра меньше 480 пикселей, меню будет поверх содержимого):
Пример
экран @media и (min-width: 480 пикселей) {
#leftsidebar
{ширина: 200 пикселей; float: left;}
#main
{margin-left: 216px;}
}
Другие примеры медиа-запросов
Для получения дополнительных примеров по медиа-запросам перейдите на следующую страницу: Примеры CSS MQ.
CSS @media Ссылка
Для полного обзора всех типов и функций / выражений медиа, пожалуйста, посмотрите Правило @media в нашем справочнике CSS.
Установка медиа-запросов для различных устройств - создание макетов веб-страниц с помощью CSS
https://vimeo.com/293172679При написании CSS есть одна вещь, о которой следует особенно беспокоиться: разрешение экрана посетителей . Пространство или количество пикселей в ширину варьируются от одного экрана к другому.
Эта информация важна при создании дизайна: как должен отображаться ваш веб-сайт при разных разрешениях экрана? Если у вас широкоформатный экран, вы можете забыть, что некоторые люди просматривают страницы с меньшими экранами. Не говоря уже о браузерах смартфонов, которые еще менее широки.
Здесь на помощь приходит медиа-запросов . Это правила, которые должны применяться для изменения дизайна веб-сайта в зависимости от характеристик экрана! Используя эту технику, мы можем создать дизайн, который автоматически подстраивается под экран каждого посетителя!
Реализация медиа-запросов
Медиа - это не новые свойства, а скорее правил, которые могут применяться при определенных условиях .В частности, вы сможете сказать: «Если разрешение экрана посетителя меньше определенного значения, примените следующие свойства CSS». Это позволяет при определенных условиях изменять внешний вид веб-сайта. Вы можете увеличить размер текста, изменить цвет фона, по-разному расположить меню с определенными разрешениями и т. Д.
Вопреки тому, что можно было бы подумать, медиа-запросы касаются не только разрешения экрана. Вы можете изменить внешний вид своего веб-сайта на основе других критериев, таких как тип экрана (смартфон, телевизор, проектор и т. Д.), количество цветов , ориентация экрана (книжная или альбомная) и т.д. Возможностей огромное количество!
Медиа-запросы работают во всех браузерах , включая Internet Explorer, начиная с версии 9 (IE9).
Применение медиа-запроса
Медиа-запросы, таким образом, являются правилами, которые определяют, когда должны применяться свойства CSS. Их можно использовать двумя способами:
путем загрузки другой таблицы стилей .css на основе правила (например, ).грамм. «Если разрешение меньше 1280 пикселей в ширину, загрузите файл small_resolution.css»);
на запись правила непосредственно в файл normal.css (например, «Если разрешение меньше 1280 пикселей, загрузите свойства CSS ниже»).
Загрузка другой таблицы стилей
Вы помните тег, который в HTML-коде загружает файл .css?
Вы можете добавить медиа-атрибут , в котором мы собираемся написать правило подал заявку на загрузку файла.Это называется медиа-запросом. Например:
В конце концов, ваш HTML-код может содержать несколько файлов CSS: один по умолчанию (который загружается во всех случаях) и один или два других, за которые взимается дополнительная плата только в том случае, если применяется соответствующее правило.
Медиа-запросы
Загрузка правил непосредственно в таблицу стилей
Другой метод, который я лично предпочитаю из практических соображений, - это записать эти правила в том же файле CSS, что и обычно. В этом случае мы пишем правило в формате.css, например:
@media screen и (max-width: 1280px) {
/ * Напишите здесь свои свойства CSS * /
}
Возможные правила
Существует множество правил для построения медиа-запросов. Упомяну только основные:
цвет
: управление цветом (в битах / пикселях).высота
: высота поля отображения (окна).ширина
: ширина поля отображения (окна).высота устройства
: высота устройства.device-width
: ширина устройства.ориентация
: ориентация устройства (книжная или альбомная).media
: тип выходного экрана. Несколько возможных значений: screen: «обычный» экран;портативный
: мобильное устройство;печать
: печать;телевизор
: телевидение;проекция
: проектор;все
: все типы экранов.
Префикс min-
или max-
может быть добавлен перед большинством этих правил. Таким образом, min-width
означает «минимальную ширину», а max-height
означает «максимальную высоту» и т. Д. Разницу между шириной
и шириной устройства
можно в первую очередь увидеть в мобильных браузерах для смартфонов, так как мы Увидим позже.
Правила можно объединить, используя следующие слова:
только
: «только»;и
: «и»;не
: «нет»;
Вот несколько примеров медиа-запросов, которые помогут вам понять принцип.
/ * На экранах с максимальной шириной окна 1280 пикселей * /
@media screen и (максимальная ширина: 1280 пикселей)
/ * На всех типах экранов с шириной окна от 1024 до 1280 пикселей * /
@media all and (min-width: 1024px) и (max-width: 1280px)
/ * На телевизорах * /
@media tv
/ * На всех вертикально ориентированных типах экранов * /
@media all and (ориентация: портрет)
Старые браузеры , включая IE6, IE7 и IE8, не знают медиа-запросы, но могут интерпретировать начало правила (они могут читать @media screen
, Например).Таким образом, они будут читать следующие свойства CSS, даже если на них не действует правило! Чтобы избежать этого, можно использовать единственное ключевое слово, о котором эти старые версии не знают: « @media only screen
» не вызывает ошибки в старых браузерах.
Тестирование медиа-запросов
Медиа-запросы в основном используются для адаптации дизайна веб-сайта к разной ширине экрана.
Давайте проведем очень простой тест: мы собираемся изменить размер и цвет текста, если ширина окна больше или меньше 1024 пикселей.Для этого теста я собираюсь использовать второй метод - написать правило прямо в том же файле .css, как обычно:
* {
семейство шрифтов: Helvetica;
}
п {
цвет фона: синий;
цвет белый;
ширина: 300 пикселей;
отступ: 50 пикселей;
выравнивание текста: центр;
маржа: 0px авто;
}
/ * Новые правила, если ширина окна меньше 1024 пикселей * /
@media screen и (max-width: 1024px) {
п {
цвет фона: черный;
красный цвет;
текст-преобразование: прописные буквы;
}
}
Результат, когда экран шире 1024 пикселей Результат, когда окно уже 1024 пикселейМы добавили медиа-запрос, который применяется ко всем экранам не шире 1024 пикселей и применяет некоторые изменения цвета и текста в зависимости от размера экрана.
Практическое использование медиа-запросов в дизайне
Изменение цвета текста - это хорошо, но особо не добавляет. Однако использование медиа-запросов для изменения внешнего вида вашего веб-сайта в зависимости от разрешения экрана сразу становится гораздо более полезным. Вы увидите, что можете делать все, что хотите!
На мобильных сайтах вы часто увидите панелей навигации , расположенных вертикально, а не горизонтально. Поскольку экраны меньшего размера уже, полная горизонтальная полоса не отображается.
Давайте возьмем базовую панель навигации и наложим элементы ее меню друг на друга, если размер экрана меньше 320 пикселей (стандартное измерение для ширины экрана смартфона).
На экранах шириной более 320 пикселей панель навигации должна выглядеть следующим образом:
Панель навигации на экранах большего размераНа экранах шириной менее 320 пикселей панель навигации должна выглядеть следующим образом:
Панель навигации на экранах более узких размеровВот стартовый код для горизонтальной панели навигации (пока нет медиа-запросов):
HTML
CSS
nav {
цвет фона: # E8D7FF;
отступ: 10 пикселей;
маржа: -8px;
}
a {
font-weight: 200;
текстовое оформление: нет;
текст-преобразование: нижний регистр;
семейство шрифтов: Helvetica;
цвет: # 151814;
}
ul {
выравнивание текста: центр;
отступ: 0 пикселей;
}
li {
стиль списка: нет;
дисплей: встроенный блок;
маржа: 0px 20px;
}
Нам нужно только изменить правила CSS для элементов списка (li), чтобы они накладывались друг на друга.Мы изменим:
их свойство отображения для блокировки вместо встроенного блока
их верхнее и нижнее поля с на 5 пикселей, чтобы между каждым элементом оставалось некоторое вертикальное пространство (в этом не было необходимости, когда элементы были в одной строке)
Вот полученный медиа-запрос, который можно просто разместить под всем остальным кодом CSS, указанным выше:
@media all and (max-width: 320px) {
li {
дисплей: блок;
маржа: 5px 0px;
}
}
Медиа-запросы и мобильные браузеры
Как вы, наверное, знаете, экраны смартфонов намного уже, чем наши обычные компьютерные экраны (их ширина всего несколько сотен пикселей).Чтобы адаптироваться к этому, мобильные браузеры отображают веб-сайт с "уменьшением масштаба", чтобы можно было видеть всю страницу. Смоделированная область отображения называется окном просмотра : это ширина окна браузера мобильного телефона.
С медиа-запросами, если в CSS вы нацеливаетесь на экран мобильного телефона с максимальной шириной , он будет сравнивать указанную вами ширину с шириной своего окна просмотра. Проблема в том, что область просмотра меняется в зависимости от используемого мобильного браузера!
Браузер | Ширина области просмотра по умолчанию |
Opera Mobile | 96611|
Android | 800 пикселей |
Windows Phone 7 | 1024 пикселей |
iPhone ведет себя так, как если бы окно было шириной 980 пикселей, в то время как окно было шириной 800 пикселей!
Для ориентации на смартфоны может быть лучше, чем использовать max-width, использовать max-device-width : это ширина устройства.Мобильные устройства имеют ширину не более 480 пикселей, поэтому мы можем настроить таргетинг только на мобильные браузеры с помощью этого медиа-запроса:
@media all и (max-device-width: 480px) {
/ * Ваши правила CSS для мобильных телефонов здесь * /
}
Почему бы не настроить таргетинг на мобильные телефоны с помощью правила для портативных носителей ?
Я вижу, что вы подписаны: очень хорошо! Действительно, теоретически мы могли бы настроить таргетинг на мобильные экраны, используя правило портативного мультимедиа ... К сожалению, ни один мобильный браузер, кроме Opera Mobile, не распознает портативные .Все они ведут себя как обычные экраны (экран). Таким образом, вы не можете использовать КПК для мобильных телефонов.
Вы можете изменить ширину области просмотра мобильного браузера с помощью метатега, который нужно вставить в заголовок документа:
.
Вы можете использовать этот тег, чтобы изменить способ организации содержимого вашей страницы на мобильных телефонах. Чтобы получить читаемый рендер без масштабирования, вы можете установить для окна просмотра ту же ширину, что и у экрана:
Воспользуйтесь медиа-запросами. с этим интерактивным упражнением!
https: // www.codevolve.com/api/v1/publishable_key/2A9CAA3419124E3E8C3F5AFCE5306292?content_id=662c11c9-10f0-44bf-830d-af7a67a982d4
Резюме
9186 9186 9185 разрешить загрузку различных стилей CSS на основе определенных настроек.
Существует большое количество настроек , разрешенных медиа-запросами: количество цветов, разрешение экрана, ориентация и т. Д. На практике они в основном используются для изменения внешнего вида веб-сайта для разных разрешений экрана.
Вы создаете медиа-запрос с помощью директивы @media
, за которой следует тип экрана и одно или несколько условий (например, максимальная ширина экрана). Следующий стиль CSS будет включен только при соблюдении условий.
Мобильные браузеры имитируют ширину экрана: это называется окном просмотра .
Смартфоны можно использовать в качестве таргетинга по правилу, основанному на фактическом количестве пикселей, отображаемых на экране: max-device-width
.
Упражнение: создайте страницу о своих проектах
Проверьте, чему вы научились в этой части, создав простую страницу, которая включает отступы, ширину, поля и многое другое.
Вот общее представление о том, как должна выглядеть страница:
Должна быть панель
nav
со ссылками на Home, About и Contact (вы можете установить ссылкуhref
values на#
) .Должен быть
h2
, представляющий вас и свою работу.Должно быть 3 квадрата-заполнителя, каждый с номером внутри и
цветом фона
.Должно быть как минимум:
Точные дизайнерские решения решать вам. Вы можете настроить заполнение элемента, границы, поля и цвета по своему усмотрению.
Не забудьте включить медиа-запрос, который заставляет квадраты-заполнители прикрепляться вертикально к размерам мобильных экранов (то есть их максимальная ширина составляет 320 пикселей).
Мы предлагаем вам выполнить это упражнение в наборе файлов на вашем компьютере: в папке проекта, содержащей 1) файл index.html
и 2) папку с именем css
, содержащую файл с именем style. css
.
Вот два мокапа (один для настольного компьютера и один для мобильного устройства), которые вас вдохновят!
Вид на рабочем столе Портал разработчиковhp | Печать с помощью CSS и медиа-запросов
Подходы к печати веб-страниц
Уильям Хертлинг
Веб-стратег, разработчик программного обеспечения и автор научной фантастики.Следуйте за ним в @hertling.
Разработчики и дизайнеры часто адаптируют веб-интерфейс для экранов мобильных устройств, адаптируя то, как мы отображаем навигацию, контент и изображения. То же самое мы хотим проделать и с печатной страницей. Как я уже говорил в других статьях: панели навигации, ссылки, фоны и некоторые изображения просто не имеют смысла в контексте печатной страницы. Выбор шрифта, межстрочный интервал и другие элементы дизайна также меняются для печатной страницы.
Существует множество способов обработки печати:
- Ничего не делать: Если вообще ничего не делается для поддержки печати, пользователь часто получает очень плохие результаты при печати.Одна новостная статья должна была занимать около 2 страниц, но занимала 18 печатных страниц, потому что элементы навигации веб-страницы отображались на многих страницах. (Они вообще не должны были отображаться в файле печати.)
- Отрисовка в браузере CSS для печати: Для выполнения основной работы по настройке того, что печатается, выбора подходящих шрифтов для печати, полей и макета, большинство браузеров будут работать нормально, если в них есть соответствующий CSS. Это подход к печати веб-страниц, который следует использовать большинству разработчиков.Результаты от одного браузера к другому могут отличаться, и не все поля, расстановки переносов и другие релевантные для печати визуализации будут присутствовать, но во многих случаях этого будет достаточно.
- HTML-to-PDF: Создание PDF-файлов - это подход к веб-печати, который я использую в своей повседневной работе в HP, потому что инструменты для создания HTML-PDF (wkhtmltopdf и PrinceXML) лучше справляются с рендерингом для печати, чем веб-страницы. браузеры. А создавая PDF-файлы на сервере, вы можете обеспечить единообразные результаты печати во всех настольных и мобильных браузерах.Обычно происходит то, что разработчик подключается к событию File-> Print с помощью Javascript и / или размещает заметную кнопку Print на веб-странице. PDF-файл создается заранее или «на лету». (В большинстве случаев PDF-файл может быть отображен менее чем за секунду.)
У нас есть еще две статьи о подходе HTML к PDF:
Сегодня я расскажу, как улучшить качество печати с помощью рендеринга в браузере. Для рендеринга в браузере требуется:
- Медиа-запросы, чтобы указать, какой CSS использовать для страничного мультимедиа (также известного как печать).
- CSS, чтобы отключить отображение содержимого, не подходящего для печатаемой страницы, например панели навигации или заголовка страницы.
- CSS для правильного форматирования оставшегося содержимого для печати (соответствующий шрифт, цвета, размеры и т. Д.)
Шаг 0: Базовый уровень
В очень мета-примере я буду работать с печатью сайта, который я когда-то создал для улучшения печати. Мы работали на WordPress с использованием темы Minn Lite с некоторыми настройками.Некоторые темы WordPress поддерживают печать из коробки, но Minn Lite - нет. Когда я напечатал статью, вот результаты:
Страница 1: Обратите внимание на потраченное впустую пространство из-за верхнего баннера и фиксированной ширины столбца.
Фон и баннер тратят чернила при печати.
Page 12: Нет необходимости в форме ввода комментария на распечатанной странице. Также обратите внимание на то, что информационное окно, которое перемещается вправо, не совсем умещается в доступном пространстве.
Page 13: Должны ли быть заметны комментарии или нет, зависит от конкретного варианта использования, но если они появляются, их следует отформатировать в разумных пределах, а не с полностью черным фоном.
Вот полный 13-страничный PDF-файл, показывающий, насколько плохой может быть веб-печать без таблицы стилей печати: Before Print CSS.
Шаг 1. Медиа-запросы для страничного мультимедиа
Первым шагом к созданию CSS для печати является использование мультимедийных запросов для определения CSS для печати, точно так же, как вы использовали бы мультимедийные запросы, основанные на размере экрана, для определения взаимодействия с мобильными устройствами.
Вы можете разделить CSS для печати и экрана на два файла и включить стили печати с помощью средства выбора мультимедиа:
Или вы можете поместить весь CSS в один файл и использовать встроенные медиа-запросы:
@media print { .sidebar { дисплей: нет; } }
Помимо запроса на печать, мы также можем запросить ориентацию или размер страницы:
@media print и (ориентация: альбомная) {. . .} @media print и (min-width: 4in) и (max-width: 6in) {/ * стиль индексной карточки * /} @media print и (min-width: 7in) и (max-height: 11in) {/ * стиль letter-size * /} @media print и (min-width: 7in) и (min-height: 13in) {/ * стиль legal-size * /}
Как показано, вам также может быть полезно запросить размер страницы.То, как вы форматируете и какой контент вы выбираете для размещения на странице, может отличаться, если у пользователя вставлены фотоматериалы 4 × 6 или индексные карточки (представьте себе веб-сайт с фотографиями или веб-сайт рецептов) по сравнению со стандартным размером Letter или листом бумаги A4. . Мне было сложно определить точный размер бумаги из-за того, как браузеры вычисляют маржу, но должна быть возможность различать мелкие вещи (каталожные карточки, фотоматериалы) и большие вещи (размер письма, A4 и т. Д.). можете узнать больше о медиа-запросах.
В этом примере мы будем использовать встроенные медиа-запросы.
Между прочим: один из подходов заключается в размещении всех стилей внутри медиа-запросов, так что каждое определение стиля предназначено либо для экрана, либо для печати, но не для обоих одновременно. Другой подход - сначала определить стили экрана, а затем позволить стилям печати их переопределить. Я склонен использовать более поздний подход, но недостатком является то, что вы иногда будете сталкиваться с проблемами приоритета: в зависимости от специфики, используемой в стилях экрана, может быть трудно переопределить стили, не прибегая к флагу! Important.(См. Раздел «Общие сведения о приоритете стилей в CSS»)
Шаг 2. Отключите нежелательное содержимое
Мы отключим три основных элемента, которые нам не нужны:
@media print { / * выключить большой синий заголовок * / div # заголовок-контейнер {дисплей: нет; } / * выключить форму комментариев * / div # social {display: none; } / * отключить последние комментарии * / . нижний колонтитул-виджет-контейнер {дисплей: нет; } }
Если у вас есть какие-либо
видео, аудио, объект, вставка {display: none; }
Шаг 3. Настройте страницу и значения по умолчанию
Избавившись от того, что нам не нужно, можно установить некоторые общие параметры по умолчанию. В приведенных ниже стилях устанавливается поле по умолчанию (чтобы обеспечить некоторую согласованность от одного браузера к другому) и выбирается типографика, подходящая для печати (шрифт с засечками, нормальный размер, большая высота строки для облегчения чтения по странице).
@страница { поле: 0,5 дюйма; } тело { размер шрифта: 11pt; семейство шрифтов: Georgia, Times New Roman, Times, serif; высота строки: 1.3; }
Шаг 4. Отформатируйте то, что осталось
Теперь мы можем посмотреть на текущее состояние и увидеть, что нам нужно.
На первой странице больше нет синего баннера, который тратит впустую место и чернила вверху страницы. Ширину столбца по-прежнему необходимо зафиксировать, как и фон. Столбец также имеет границу, и мы хотим ее убрать.
На последней странице удалены комментарии и форма для ввода комментариев, и это хорошо. Но окно «О программе» все еще висит там.
Следующий CSS позаботится о ширине столбца, заполнении и полях, чтобы основное содержимое занимало большую часть страницы:
body.two-col-r main.content { ширина: 100%; граница: 0px; отступ: 0 пикселей; } body.two-col-r div # container { отступ: 0 пикселей; маржа: 0px; }
После получения полноразмерного содержимого следующая проблема, которая становится очевидной, заключается в том, что некоторые изображения слишком велики для универсальной печати. Если пользователь не намерен специально печатать фотографии, большинство пользователей предпочитают, чтобы изображения были небольшого размера, чтобы сэкономить чернила / тонер.Чрезвычайно большие изображения также вызывают больше разрывов страниц, когда изображение не помещается в оставшееся пространство, что требует большего количества бумаги и делает распечатанный результат менее читаемым.
Итак, мы хотим ограничить размер изображения. К сожалению, это сложно сделать одним способом, который идеально подходил бы для всех сайтов и всего контента. Для примера страницы, которую я печатаю, есть диаграмма на странице 1, которая в идеале должна быть распечатана в полный размер, и множество примеров фотографий, которые желательно немного уменьшить при печати.Использование классов CSS для нацеливания на определенные типы контента поможет, если эти классы используются последовательно. В противном случае во многих случаях поможет что-то вроде следующего CSS:
img { максимальная ширина: 3,5 дюйма; }
Последнее, на что нам нужно обратить внимание, - это поле «О программе», которое изначально является правым столбцом в стороне и переместилось на последнюю страницу. Поскольку он заключен в несколько слоев div, проще всего, вероятно, сделать, это скрыть исходное поле «О программе» и воспроизвести содержимое с помощью селектора: before CSS.Псевдоселекторы: before и: after очень полезны для вставки нового контента, и вы можете прочитать о них больше в сети разработчиков Mozilla.
в сторону # первичная боковая панель {дисплей: нет; } main.content: before { дисплей: блок; содержание: «Сообщество разработчиков печати - это место, где можно найти информацию и обсудить реализацию печати в программном обеспечении. Спонсируется HP, но открыто для всех. Найдите нас на сайте hp.com/developers»; нижнее поле: 10 пикселей; граница: сплошная 1px #bbb; отступ: 3px 5px; стиль шрифта: курсив; }
Ссылки форматирования
Я не делал никакого специального форматирования для ссылок, хотя есть несколько подходов, которые следует рассмотреть.Вы можете узнать больше об этих подходах в отличной статье «Как настроить таблицу стилей печати» от Smashing Magazine. Некоторые из вариантов включают:
Избавьтесь от какого-либо специального визуального форматирования, потому что печатные ссылки не действуют.
Переформатируйте ссылки, чтобы наглядно отображать целевой URL. (В статье «Таблица стилей печати» объясняется, как это сделать.)
Оставьте ссылки как есть.
Лично я предпочитаю оставлять ссылки как есть, если их небольшое количество. Было бы неплохо узнать, где были ссылки, потому что это дает мне несколько советов о том, где я мог бы получить дополнительную информацию.Но меня не настолько интересует, что я хочу прерывать страницу длинными печатными ссылками, которые я никогда не буду вводить. Скорее всего, я захочу погуглить несколько терминов, если захочу прочитать больше.
Еще лучшее решение может быть создано с помощью технологии HP Link, которая позволит вам заменять URL-адреса короткими, удобными для мобильных устройств версиями и / или водяными знаками на распечатанной странице, чтобы пользователи могли просто навести на страницу со своим смартфоном, чтобы увидеть ссылки и посетите их пункты назначения.Это выходит за рамки данного руководства, но вы можете найти дополнительную информацию здесь, в HP Link Technology API.
Заключение
Используя медиа-запросы CSS, разработчики могут легко определить, когда веб-страница печатается, а не отображается на экране рабочего стола или мобильного устройства, и соответствующим образом настраивать дизайн. Как мы показали в этой и других статьях, проектирование для печати означает удаление ненужных элементов навигации, очистку форматирования и выбор подходящей типографики и размеров изображений.
Это PDF-файл, полученный менее чем за час работы с CSS: После печати CSS . Вот исходный PDF-файл, поэтому вы можете увидеть разницу: Перед печатью CSS . Объем отпечатанных страниц сократился с 13 до 9, лучше использовался полный размер страницы, а также уменьшен размер и количество изображений для экономии чернил.
Вот последний CSS для этого сайта, позволяющий печатать:
@media print { div # заголовок-контейнер {дисплей: нет; } div # social {display: none; } .нижний колонтитул-виджет-контейнер {дисплей: нет; } div # toc_container {дисплей: нет; } в сторону # первичная боковая панель {дисплей: нет; } @страница { поле: 0,5 дюйма; } тело { размер шрифта: 11pt; семейство шрифтов: Georgia, Times New Roman, Times, serif; высота строки: 1,3; } body.two-col-r main.content { ширина: 100%; граница: 0px; отступ: 0 пикселей; } body.two-col-r div # container { отступ: 0 пикселей; маржа: 0px; } img { максимальная ширина: 3,5 дюйма; } main.content: before { дисплей: блок; content: «Сообщество разработчиков печати - это место для информации и дискуссий о внедрении печати в программное обеспечение.Спонсор HP, но открытый для всех, найдите нас на сайте hp.com/developers. "; нижнее поле: 10 пикселей; граница: сплошная 1px #bbb; отступ: 3px 5px; стиль шрифта: курсив; } }
Больше от Will
Учебные пособия по коду
Вот подробные руководства Уилла по коду, которые мы перенесли на Основы печати для разработчиков на портале разработчиков HP
.