В CSS существует возможность использовать правила, благодаря которым можно управлять отображением элементов в зависимости от определенных условий. Каждое правило начинается с знака @, следом за которым располагается идентификатор.
@[KEYWORD] (RULE);
Базовые правила
Для них применяется единый синтаксис.
@charset
Это правило определяет кодировку для браузера по умолчанию. Это очень удобно, если таблица стилей содержит UTF-8 символы. Обратите внимание, что кодировка в HTTP запросе отменяет это правило.
@charset "UTF-8";
@import
Данное правило следует использовать в самом начале таблицы стилей. Оно дает возможность подключать в одну таблицу стилей другие.
@import 'global.css';
@namespace
Правило полезно использовать для применения стилей к XML, HTML (XHTML), так как XHTML элементы могут быть использованы в качестве селекторов в CSS.
/* Namespace for XHTML */ @namespace url(http://www.w3.org/1999/xhtml); /* Namespace for SVG embedded in XHTML */ @namespace svg url(http://www.w3.org/2000/svg);
Вложенные правила
Вложенные правила могут содержать подмножество дополнительных условий, некоторые из которых могут быть применены к конкретной ситуации.
@[KEYWORD] {
/* Nested Statements */
}
@document
Данное правило позволяет применить стили к определенной странице. Для других страниц оно будет проигнорировано.
@document
/* Rules for a specific page */
url(http://reimax.ru/),
/* Rules for pages with a URL that begin with... */
url-prefix(http://reimax.ru/blog/),
/* Rules for any page hosted on a domain */
domain(reimax.ru),
/* Rules for all secure pages */
regexp("https:.*")
{
/* Start styling */
body { font-family: Comic Sans; }
}
@font-face
Позволяет загружать и использовать на сайте пользовательские шрифты.
@font-face {
font-family: 'MyWebFont';
src: url('myfont.woff2') format('woff2'),
url('myfont.woff') format('woff');
}
@keyframes
Является основой для покадровой анимации с применением только CSS стилей.
@keyframes pulse {
0% {
background-color: #001f3f;
}
100% {
background-color: #ff4136;
}
}
@media
Правило позволяет назначать стили для элементов на определенных разрешениях экранов. Часто используется при создании адаптивных сайтов.
/* iPhone in Portrait and Landscape */
@media only screen
and (min-device-width: 320px)
and (max-device-width: 480px)
and (-webkit-min-device-pixel-ratio: 2) {
.module { width: 100%; }
}
Если вам нужно назначить стили для страницы при печати её на принтере, то это очень просто:
@media print {
}
@page
Правило позволяет назначать стили для отдельных страниц при печати. Через него можно задавать отступы полей у страниц.
@page :first {
margin: 1in;
}
@supports
Проверяет поддерживает ли браузер определенную функцию или селектор.
/* Check one supported condition */
@supports (display: flex) {
.module { display: flex; }
}
/* Check multiple conditions */
@supports (display: flex) and (-webkit-appearance: checkbox) {
.module { display: flex; }
}