0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Одним из самых важных инструментов при создании адаптивной вёрстки является использование медиа-запросов. Медиа-запросы - специальные условные конструкции, которые позволяют применять стили только для определённых устройств.</p>
1
<p>Одним из самых важных инструментов при создании адаптивной вёрстки является использование медиа-запросов. Медиа-запросы - специальные условные конструкции, которые позволяют применять стили только для определённых устройств.</p>
2
<p>Медиа-запросы записываются следующим образом:</p>
2
<p>Медиа-запросы записываются следующим образом:</p>
3
<p>В качестве<em>условия</em>могут выступать различные значения и константы. Зачастую используются следующие конструкции:</p>
3
<p>В качестве<em>условия</em>могут выступать различные значения и константы. Зачастую используются следующие конструкции:</p>
4
<h2>Ориентация экрана</h2>
4
<h2>Ориентация экрана</h2>
5
<p>Для определения ориентации экрана используется ключ orientation, значением которого может выступать одно из двух значений:</p>
5
<p>Для определения ориентации экрана используется ключ orientation, значением которого может выступать одно из двух значений:</p>
6
<ol><li>landscape. Условие выполнится для устройств с<em>горизонтальной</em>ориентацией экрана. Горизонтальная - ориентация, при которой ширина<em>viewport</em>больше его высоты.</li>
6
<ol><li>landscape. Условие выполнится для устройств с<em>горизонтальной</em>ориентацией экрана. Горизонтальная - ориентация, при которой ширина<em>viewport</em>больше его высоты.</li>
7
<li>portrait. Условие выполнится для устройств с<em>вертикальной</em>ориентацией экрана. Вертикальная - ориентация, при которой высота<em>viewport</em>больше его ширины.</li>
7
<li>portrait. Условие выполнится для устройств с<em>вертикальной</em>ориентацией экрана. Вертикальная - ориентация, при которой высота<em>viewport</em>больше его ширины.</li>
8
</ol><h2>Разрешение экрана</h2>
8
</ol><h2>Разрешение экрана</h2>
9
<p>При использовании медиа-запросов мы также можем исходить из ширины или высоты<em>viewport</em>. Для этого используются знакомые нам по обычным CSS-правилам условия<em>width, min-width, max-width</em>для ширины и<em>height, min-height, max-height</em>для высоты.</p>
9
<p>При использовании медиа-запросов мы также можем исходить из ширины или высоты<em>viewport</em>. Для этого используются знакомые нам по обычным CSS-правилам условия<em>width, min-width, max-width</em>для ширины и<em>height, min-height, max-height</em>для высоты.</p>
10
<p>С помощью таких условий создаются<em>breakpoint</em>- контрольные точки. Это границы значений, по которым видоизменяется наш макет. Такие точки остановки позволяют иметь правила для мониторов, планшетов, телефонов, кофеварок.</p>
10
<p>С помощью таких условий создаются<em>breakpoint</em>- контрольные точки. Это границы значений, по которым видоизменяется наш макет. Такие точки остановки позволяют иметь правила для мониторов, планшетов, телефонов, кофеварок.</p>
11
<p>Обратите внимание на порядок написания свойств. Помните, что CSS является каскадной таблицей, поэтому порядок стилей необходимо контролировать. В данном случае к элементу вначале будет применён стиль по умолчанию, который не находится в медиа-запросе, затем поочерёдно будут применяться стили в зависимости от значений в условии медиа-запроса.</p>
11
<p>Обратите внимание на порядок написания свойств. Помните, что CSS является каскадной таблицей, поэтому порядок стилей необходимо контролировать. В данном случае к элементу вначале будет применён стиль по умолчанию, который не находится в медиа-запросе, затем поочерёдно будут применяться стили в зависимости от значений в условии медиа-запроса.</p>
12
<p>Например, при ширине<em>viewport</em>770 пикселей для элемента стили применятся в следующем порядке:</p>
12
<p>Например, при ширине<em>viewport</em>770 пикселей для элемента стили применятся в следующем порядке:</p>
13
<ul><li>Стили по умолчанию.</li>
13
<ul><li>Стили по умолчанию.</li>
14
<li>Стили для условия медиа-запроса max-width: 1400px.</li>
14
<li>Стили для условия медиа-запроса max-width: 1400px.</li>
15
<li>Стили для условия медиа-запроса max-width: 990px.</li>
15
<li>Стили для условия медиа-запроса max-width: 990px.</li>
16
<li>Стили для условия медиа-запроса max-width: 770px.</li>
16
<li>Стили для условия медиа-запроса max-width: 770px.</li>
17
</ul><p>Подход, описанный выше называется<em>Desktop First</em>. Мы вначале пишем стили для больших мониторов, а в последствии, используя медиа-запросы, дописываем стили для всё более маленьких значений<em>viewport</em>. Его характерная черта в медиа-запросах - использование конструкции<em>max-width</em>в качестве условия.</p>
17
</ul><p>Подход, описанный выше называется<em>Desktop First</em>. Мы вначале пишем стили для больших мониторов, а в последствии, используя медиа-запросы, дописываем стили для всё более маленьких значений<em>viewport</em>. Его характерная черта в медиа-запросах - использование конструкции<em>max-width</em>в качестве условия.</p>
18
<p>В противовес<em>Desktop First</em>существует подход<em>Mobile First</em>. Его особенностью является то, что вначале пишутся стили под мобильные устройства, а затем, используя медиа-запросы, пишутся стили для больших размеров<em>viewport</em>. Если в<em>Desktop First</em>основной конструкцией являлось использование<em>max-width</em>, то в<em>Mobile First</em>используется<em>min-width</em>.</p>
18
<p>В противовес<em>Desktop First</em>существует подход<em>Mobile First</em>. Его особенностью является то, что вначале пишутся стили под мобильные устройства, а затем, используя медиа-запросы, пишутся стили для больших размеров<em>viewport</em>. Если в<em>Desktop First</em>основной конструкцией являлось использование<em>max-width</em>, то в<em>Mobile First</em>используется<em>min-width</em>.</p>
19
<p>Стили, написанные с использованием подхода<em>Mobile First</em>выглядят следующим образом:</p>
19
<p>Стили, написанные с использованием подхода<em>Mobile First</em>выглядят следующим образом:</p>
20
<h2>Логические операторы</h2>
20
<h2>Логические операторы</h2>
21
<p>Условия внутри медиа-запросов можно комбинировать. Для этого существует три логических оператора:</p>
21
<p>Условия внутри медиа-запросов можно комбинировать. Для этого существует три логических оператора:</p>
22
<ul><li>Логическое<em>"И"</em>. Означает, что несколько условий должны быть выполнены для того, чтобы CSS-стили применились к элементу. Для использования логического "И" используется ключевое слово and. Сделаем условие, которое проверяет, что экран устройства находится в портретной (вертикальной) ориентации и имеет ширину<em>viewport</em>не меньше 600 пикселей:</li>
22
<ul><li>Логическое<em>"И"</em>. Означает, что несколько условий должны быть выполнены для того, чтобы CSS-стили применились к элементу. Для использования логического "И" используется ключевое слово and. Сделаем условие, которое проверяет, что экран устройства находится в портретной (вертикальной) ориентации и имеет ширину<em>viewport</em>не меньше 600 пикселей:</li>
23
</ul><ul><li>Логическое<em>"ИЛИ"</em>. Свойства применятся в том случае, если хотя бы<em>одно из</em>условий будет выполнено. Условия для этого отделяются запятыми. Возьмём прошлый пример и применим его с использованием "ИЛИ":</li>
23
</ul><ul><li>Логическое<em>"ИЛИ"</em>. Свойства применятся в том случае, если хотя бы<em>одно из</em>условий будет выполнено. Условия для этого отделяются запятыми. Возьмём прошлый пример и применим его с использованием "ИЛИ":</li>
24
</ul><ul><li>Логическое<em>"НЕ"</em>. Свойства применятся в том случае, если условие<em>не выполняется</em>. Используется ключевое слово not. Реальное использование этого оператора не велико, в виду сложности и не интуитивности происходящего. В связи с этим советую воздержаться в первое время от использования ключевого слова not.</li>
24
</ul><ul><li>Логическое<em>"НЕ"</em>. Свойства применятся в том случае, если условие<em>не выполняется</em>. Используется ключевое слово not. Реальное использование этого оператора не велико, в виду сложности и не интуитивности происходящего. В связи с этим советую воздержаться в первое время от использования ключевого слова not.</li>
25
</ul><p>Медиа-запросы возможно писать не только внутри CSS-файла, но и использовать их в HTML при подключении файла стилей. В этом случае медиа-запрос указывается в атрибуте media.</p>
25
</ul><p>Медиа-запросы возможно писать не только внутри CSS-файла, но и использовать их в HTML при подключении файла стилей. В этом случае медиа-запрос указывается в атрибуте media.</p>
26
26