Правило @document CSS
Устарело: Эта функция больше не рекомендуется. Хотя некоторые браузеры могут по-прежнему её поддерживать, она уже могла быть удалена из соответствующих веб-стандартов, может находиться в процессе удаления или сохраняться только для обеспечения совместимости. Избегайте её использования и по возможности обновите существующий код; воспользуйтесь таблицей совместимости внизу этой страницы, чтобы принять решение. Имейте в виду, что эта функция может перестать работать в любой момент.
Нестандартное: Эта функция не является стандартной и не включена в процесс стандартизации. Не используйте её на общедоступных веб-сайтах: она будет работать не у всех пользователей. Кроме того, между реализациями могут быть значительные различия, а поведение может измениться в будущем.
Нестандартное: Эта функция не является стандартной и не включена в процесс стандартизации. Не используйте её на общедоступных веб-сайтах: она будет работать не у всех пользователей. Кроме того, между реализациями могут быть значительные различия, а поведение может измениться в будущем.
Правило @document CSS at-rule ограничивает содержащиеся в нём правила стилей в зависимости от URL документа. Оно предназначено главным образом для таблиц стилей, определяемых пользователем (подробнее см. на сайте userchrome.org), но может применяться и в таблицах стилей, определяемых автором.
Синтаксис
@document url("https://www.example.com/")
{
h1 {
color: green;
}
}
Правило @document может задавать одну или несколько функций сопоставления. Если для данного URL подходит хотя бы одна из функций, правило будет применяться к этому URL. Доступны следующие функции:
-
url() - Соответствует точному URL.
-
url-prefix() - Соответствует, если URL документа начинается с указанного значения.
-
domain() - Соответствует, если URL документа находится в указанном домене (или его поддомене).
-
media-document() - Соответствует типу медиа согласно строке в параметре:
video,image,pluginилиall. -
regexp() - Соответствует, если URL документа соответствует указанному регулярному выражению. Выражение должно соответствовать всему URL.
Значения, передаваемые функциям url(), url-prefix(), domain() и media-document(), можно заключать в одинарные или двойные кавычки. Значения, передаваемые функции regexp(), необходимо заключать в кавычки.
Значения, передаваемые функции regexp() с экранированием, необходимо дополнительно экранировать в CSS. Например, . (точка) в регулярных выражениях соответствует любому символу. Чтобы найти именно точку, сначала нужно экранировать её по правилам регулярных выражений (получив \.), а затем экранировать эту строку по правилам CSS (получив \\.).
@document в настоящее время поддерживается только в Firefox; чтобы реализовать подобные возможности в собственном браузере, отличном от Firefox, можно попробовать использовать этот полифил от @An-Error94, который сочетает пользовательский скрипт, атрибуты data-* и селекторы атрибутов.
Примечание: Существует версия этого свойства с префиксом -moz — @-moz-document. В Firefox 59 в Nightly и Beta её применение было ограничено таблицами стилей пользователя и UA. Это эксперимент, предназначенный для снижения риска потенциальных атак с внедрением CSS (см. ошибку Firefox 1035091).
Формальный синтаксис
@document [ <url> |
url-prefix(<string>) |
domain(<string>) |
media-document(<string>) |
regexp(<string>)
]# {
<group-rule-body>
}
Примеры
Указание документа для правила CSS
@document url("http://www.w3.org/"),
url-prefix("http://www.w3.org/Style/"),
domain("mozilla.org"),
media-document("video"),
regexp("https:.*") {
/* CSS rules here apply to:
- The page "http://www.w3.org/"
- Any page whose URL begins with "http://www.w3.org/Style/"
- Any page whose URL's host is "mozilla.org"
or ends with ".mozilla.org"
- Any standalone video
- Any page whose URL starts with "https:" */
/* Make the above-mentioned pages really ugly */
body {
color: purple;
background: yellow;
}
}
Спецификации
Первоначально на уровне 3, @document было отложено до уровня 4, но впоследствии удалено.
Совместимость с браузерами
| Настольные | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | |
document |
Нет |
Нет |
61Поддерживается только пустое значениеurl-prefix(), которое сохранено благодаря его использованию для определения браузера Firefox. По-прежнему поддерживается в пользовательских таблицах стилей.1.5–61
|
Нет |
Нет |
Нет |
61Поддерживается только пустое значениеurl-prefix(), которое сохранено благодаря его использованию для определения браузера Firefox для Android. По-прежнему поддерживается в пользовательских таблицах стилей.4–61
|
Нет |
Нет |
Нет |
Нет |
Нет |
См. также
- Правила таблиц стилей пользователя для отдельных сайтов в списке рассылки www-style.
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@document