これは実験段階の機能です。
この機能は複数のブラウザで開発中の状態にあります。各ブラウザで用いるために、適切なベンダー接頭辞が必要な場合があります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザの将来のバージョンで変更になる可能性があることに注意してください。
概要
@document
規則は、ドキュメントの URL に基づいて、その中に含まれるスタイル規則を制限する @ 規則です。これは主にユーザ定義スタイルシート用に設計されています。@document
規則には 1 つ以上のマッチング関数を指定します。関数が URL に適用されると、規則がその URL に効果を及ぼします。
主な用途はユーザ定義スタイルシートですが、著者定義スタイルシートにも使えます。
利用可能な関数は次の通りです:
url()
。正確な URL にマッチしますurl-prefix()
。URL が、与えた値で始まるときマッチしますdomain()
。URL が、与えたドメイン内のもの(またはサブドメインのもの)であるときマッチしますregexp()
。URL が、与えた正規表現 にマッチするときにマッチします。正規表現は URL 全体にマッチする必要があります。
構文
url()
、url-prefix()
、および domain()
関数に与える値は、単一引用符または二重引用符で囲うこともできます。regexp()
関数に与える値は、引用符で囲わねばなりません。
regexp()
関数に与えるエスケープされた値は CSS によってさらにエスケープされる必要があります。例えば、一つの .
(ピリオド)は正規表現ではどんな文字にもマッチします。リテラルのピリオドにマッチさせるには、まず正規表現の規則を使ってエスケープし(\. にします)、次に CSS の規則を使ってエスケープしなければなりません(\\. にします)。
Formal syntax
@document [ <url> | url-prefix(<string>) | domain(<string>) | regexp(<string>) ]# { <group-rule-body> }
例
Firefox では、次の CSS を userContent.css ファイル内に記述してください:
@document url(https://www.w3.org/), url-prefix(https://www.w3.org/Style/), domain(mozilla.org), regexp("https:.*") { /* この CSS 規則を次のページに適用: + "https://www.w3.org/" ページ。 + "https://www.w3.org/Style/" で始まる URL のページ。 + URL のホストが "mozilla.org" のページまたは ".mozilla.org" で終わるページ。 + URL が "https:" で始まるページ。 */ /* 上で挙げたページを醜する */ body { color: purple; background: yellow; } }
仕様
CSS Conditional Rules Module Level 3 で初めて登場 しました。@document
は CSS4 に 延期されました。
ブラウザ実装状況
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
基本サポート | 未サポート | 1.5 (1.8) -moz | 未サポート | 未サポート | 未サポート |
regexp() |
未サポート | 6.0 (6.0) | 未サポート | 未サポート | 未サポート |
機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本サポート | ? | ? | ? | ? | ? | ? |
regexp() |
未サポート | 未サポート | ? | 未サポート | 未サポート | 未サポート |
関連情報
- Per-site user style sheet rules on the www-style mailing list.
-
ファイル
userContent.css
は Geckoベースのブラウザのユーザ定義スタイルシートです。