Spec-Zone.ru › CSS

@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. По-прежнему поддерживается в пользовательских таблицах стилей.
1.5–61
Нет Нет Нет
61Поддерживает только пустое значение url-prefix(), что поддерживается из-за его использования для определения браузера Firefox. По-прежнему поддерживается в пользовательских таблицах стилей.
4–61
Нет Нет Нет Нет

См. также

  • Правила пользовательских таблиц стилей для отдельных сайтов на форуме 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API