@document
Устаревший: Эта функция больше не рекомендуется. Несмотря на то, что некоторые браузеры могут её всё ещё поддерживать, она может быть уже удалена из соответствующих веб-стандартов, может быть в процессе удаления или может поддерживаться только для обеспечения совместимости. Избегайте её использования и, если возможно, обновите существующий код; см. таблицу совместимости в конце этой страницы, чтобы принять решение. Имейте в виду, что эта функция может перестать работать в любой момент.
Нестандартный: Эта функция нестандартна и не соответствует стандартам. Не используйте её на сайтах, ориентированных на веб, в рабочей среде: она не будет работать для каждого пользователя. Также могут существовать значительные несовместимости между реализациями, а поведение может измениться в будущем.
Правило @document CSS правило ограничивает правила стилей, содержащиеся в нём, на основе URL-адреса документа. Оно предназначено в первую очередь для пользовательских таблиц стилей, но также может использоваться для таблиц стилей, определённых автором.
@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. Оно ограничено использованием только в пользовательских и UA листах в Firefox 59 в Nightly и Beta — это эксперимент, призванный смягчить потенциальные атаки с помощью внедрения 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;
}
}
Спецификации
Изначально в Level 3, @document был отложен до Level 4, но затем удалён.
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
@document |
Нет | Нет |
61Поддерживает только пустое значениеurl-prefix(), что поддерживается из-за его использования для определения браузера Firefox. По-прежнему поддерживается в пользовательских таблицах стилей. |
Нет | Нет | Нет |
61Поддерживает только пустое значениеurl-prefix(), что поддерживается из-за его использования для определения браузера Firefox. По-прежнему поддерживается в пользовательских таблицах стилей. |
Нет | Нет | Нет | Нет |
См. также
- Правила пользовательских таблиц стилей для отдельных сайтов на форуме www-style.
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/@document