@document

已棄用:此特性不再推薦。雖然某些瀏覽器可能仍然支援它,但它可能已經從相關的網路標準中刪除,可能正在刪除過程中,或者可能僅為相容性目的而保留。請避免使用它,如果可能,請更新現有程式碼;請參閱本頁底部的相容性表格以指導您的決策。請注意,此特性可能隨時停止工作。

非標準:此特性未標準化。我們不建議在生產環境中使用非標準特性,因為它們瀏覽器支援有限,並且可能會更改或被移除。但是,在沒有標準選項的特定情況下,它們可以是合適的替代方案。

@document CSS @規則根據文件的 URL 限制其中包含的樣式規則。它主要用於使用者定義的樣式表(有關更多資訊,請參閱 userchrome.org),但也可以用於作者定義的樣式表。

語法

css
@document url("https://www.example.com/")
{
  h1 {
    color: green;
  }
}

@document 規則可以指定一個或多個匹配函式。如果任何函式適用於給定的 URL,則該規則將對該 URL 生效。可用的函式有:

url()

匹配確切的 URL。

url-prefix()

如果文件 URL 以提供的值開頭則匹配。

domain()

如果文件 URL 位於提供的域(或其子域)上則匹配。

media-document()

根據引數中的字串匹配媒體,字串可以是 videoimagepluginall 中的一個。

regexp()

如果文件 URL 與提供的正則表示式匹配則匹配。表示式必須匹配整個 URL。

提供給 url()url-prefix()domain()media-document() 函式的值可以可選地用單引號或雙引號括起來。提供給 regexp() 函式的值必須用引號括起來。

提供給 regexp() 函式的轉義值還必須從 CSS 中轉義。例如,.(句點)在正則表示式中匹配任何字元。要匹配文字句點,您首先需要使用正則表示式規則對其進行轉義(為 \.),然後使用 CSS 規則對該字串進行轉義(為 \\.)。

@document 目前僅在 Firefox 中受支援;如果您想在自己的非 Firefox 瀏覽器中複製此類功能,可以嘗試使用 @An-Error94 的此 polyfill,它結合使用了使用者指令碼、data-* 屬性屬性選擇器

注意:此屬性有一個 -moz- 字首版本——@-moz-document。在 Firefox 59 的 Nightly 和 Beta 版本中,此功能已僅限於使用者和 UA 樣式表中使用——這是一個旨在緩解潛在 CSS 注入攻擊的實驗(參見Firefox bug 1035091)。

正式語法

@document [ <url>                    |
            url-prefix(<string>)     |
            domain(<string>)         |
            media-document(<string>) |
            regexp(<string>)
          ]# {
  <group-rule-body>
}

示例

為 CSS 規則指定文件

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,但隨後被移除。

瀏覽器相容性

另見