CSS властивості
ГлавнаяДовідник CSSПравило @media в CSS

Правило @media в CSS

192

Правило @media дозволяє вказати тип носія, для якого застосовуватиметься вказаний стиль. Як типи виступають різні пристрої, наприклад, принтер, монітор та ін. У табл. 1 перераховані основні з них.

Табл. 1. Типи носіїв та їх опис
Тип Опис
all Всі типи . Це значення використовується за замовчуванням.
print Принтери та інші принтери.
screen Екран монітора.
speech Мовні синтезатори, а також програми для відтворення тексту вголос. Сюди, наприклад, можна віднести мовні браузери. class="data">
Табл. 2. Застарілі типи носіїв. системі Брайля, які призначені для читання сліпими людьми.
embossed Принтери, які використовують для друку систему Брайля.> handheld Налагоджені комп'ютери та аналогічні апарати.
projection Проектори.
tty Пристрої з фіксованим розміром символів (телетайпи, термінали, пристрої з обмеженнями дисплея).
tv Телевізори.

Синтаксис

<code>@media <тип носія> { <стильові правила> }

Позначення

Опис Приклад
<тип> Вказує тип значення. <розмір>
A && B Значення повинні виводитися в зазначеному порядку. <розмір> && <колір>
A | B Вказує, що потрібно вибрати лише одне значення із запропонованих (A або B). normal | small-caps
A || B Кожне значення може використовуватися самостійно або спільно з іншими у довільному порядку. width || count
[ ] Групує значення. [ crop || cross ]
* Повторювати нуль або більше разів. [,<час>]*
+ Повторювати один або більше разів. <число>+
? Вказаний тип, слово або група не є обов'язковим. inset?
{A, B} Повторювати не менше A, але не більше B разів. <радіус>{1,4}
# Повторювати один або більше разів через кому. <час>#

Значення

Після ключового слова @media йде один або кілька типів носія, перерахованих у табл. 1; якщо їх більше одного, то вони поділяються між собою комою. Після цього слідують обов'язкові фігурні дужки, всередині яких пишуться стильові правила.

long field-label-above">

Приклад

 <code data-language="html"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>@media</title> <style type="text/css"> @media screen { /* Стиль для відображення у браузері */
body { font-family: Arial, Verdana, sans-serif; /* Рублений шрифт */
font-size: 0.9em; /* Розмір шрифту */
color: #000080; /* Колір тексту */
} 
h1 { background: #faf0e6; /* Колір тла під текстом */
border: 2px dashed #800000; /* Рамка навколо заголовка */
color: #a0522d; /* Колір тексту */
padding: 7px; /* Поля навколо тексту */
} 
h2 { color: #556b2f; /* Колір тексту */
margin: 0; /* Забираємо відступи */
} 
p { margin-top: 0.5em; /* Відступ зверху */
} 
} 
@media print { /* Стиль для друку */
body { font-family: Times, 'Times New Roman', serif; /* Шрифт із засічками */
} 
h1, h2, p { color: #000; /* Чорний колір тексту */
} 
}
</style>
</head>
<body> <h1>Метод лову лева в пустелі</h1> <h2>Метод послідовного перебору</h2> <p>Нехай лев має габаритні розміри LxWxH, де L — довжина лева від кінчика носа до пензлика хвоста, W — ширина лева, а H — його висота. Після чого пустелю розбиваємо на ряд елементарних прямокутників, розмір яких збігається із шириною та довжиною лева. Враховуючи, що лев може бути не суворо на заданій ділянці, а одночасно на двох з них, клітину для лову слід робити підвищеної площі, а саме 2Lx2W. Завдяки цьому ми уникнемо помилок, коли в клітці виявиться спійманим лише половина лева або, що гірше, лише його хвіст.</p> <p>Далі послідовно накриваємо кожен із розмічених прямокутників пустелі клітиною і перевіряємо, чи спійманий лев чи ні. Як тільки лев опиниться в клітці, процедура затримання вважається завершеною.</p>
</body>
</html>

У цьому прикладі вводиться два стилі — один для зміни виду елементів при їхньому звичайному відображенні в браузері, а другий  — під час виведення сторінки на друк. При цьому вигляд документа для різних носіїв може сильно різнитися між собою, наприклад, як показано на рис. 1 та рис. 2.

Сторінка для відображення у вікні браузера

Мал. 1. Сторінка для відображення у вікні браузера

Мал. 2

Мал. 2. Сторінка, призначена для друку

Переглянути документ, у якого CSS встановлено як тип print, можна, якщо роздрукувати певну сторінку. Або піти на хитрість і тимчасово замінити слово print на screen, щоб відобразити результат у браузері. Саме так було отримано рис. 2.

Команда @media застосовується в основному для формування одного стильового файлу, який розбитий на блоки типу пристроїв. Іноді має сенс створити кілька різних CSS-файлів — один для друку, інший для відображення у браузері — і підключати їх до документа за необхідності. У такому разі слід скористатися елементом <link> з атрибутом media, значенням якого виступають ті ж типи, перераховані в табл. 1.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>@media</title> <link media="print" rel="stylesheet" href="print.css"> <link media="screen" rel="stylesheet" href="main.css">
</head>
<body> <p>...</p>
</body>
</html>

У цьому прикладі використовуються дві таблиці стилів, одна для відображення в браузері, а друга — для друку документа. Хоча на сторінку завантажуються одночасно два різні стилі, застосовуються вони тільки для певних пристроїв.

-text-long field-label-above">

Специфікація

Рекомендація
Специфікація Статус
Media Queries Level 4 Робочий проект
Media Queries Level 3 Рекомендація
CSS Level 2 Revision 1 (CSS 2.1)

Специфікація

Кожна специфікація проходить кілька стадій схвалення.

  • Recommendation (Рекомендація) — специфікація схвалена W3C і рекомендована як стандарт. , але потрібна допомога співтовариства розробників з реалізації стандарту. твердження.
  • Working Draft (Робочий проект) — більш зріла версія чернетки після обговорення та внесення поправок для розгляду спільнотою.
  • Editor's draft (Рідак торська чернетка) — чернова версія стандарту після внесення правок редакторами проекту.
  • Draft (Чернетка специфікації) — перша чернова версія стандарту.

Браузери

9 12 1 9.2 1.3 1
1 1 9 3.1

Браузери

У таблиці браузерів застосовуються такі позначення.

  •  — властивість повністю підтримавши дається браузером з усіма допустимими значеннями;
  •   — властивість браузером не сприймається та ігнорується;
  •   ;— при роботі можлива поява різних помилок, або властивість підтримується лише частково, наприклад, не всі допустимі значення діють або властивість застосовується не до всіх елементів, зазначених у специфікації.

Число вказує версію браузера , з якої властивість підтримується.