@document
已棄用:此特性不再推薦。雖然某些瀏覽器可能仍然支援它,但它可能已經從相關的網路標準中刪除,可能正在刪除過程中,或者可能僅為相容性目的而保留。請避免使用它,如果可能,請更新現有程式碼;請參閱本頁底部的相容性表格以指導您的決策。請注意,此特性可能隨時停止工作。
非標準:此特性未標準化。我們不建議在生產環境中使用非標準特性,因為它們瀏覽器支援有限,並且可能會更改或被移除。但是,在沒有標準選項的特定情況下,它們可以是合適的替代方案。
@document CSS @規則根據文件的 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 的此 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 規則指定文件
@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;
}
}
規範
瀏覽器相容性
載入中…
另見
- 關於 www-style 郵件列表上的每個站點的使用者樣式表規則。