これは実験的な機能です。本番で使用する前にブラウザー実装状況をチェックしてください。

概要

@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

CSS 構文の読み方

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

Firefox では、次の CSS を userContent.css ファイル内に記述してください:

@document url(http://www.w3.org/),
          url-prefix(http://www.w3.org/Style/),
          domain(mozilla.org),
          regexp("https:.*")
{
  /* この CSS 規則を次のページに適用:
     + "http://www.w3.org/" ページ。
     + "http://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 に 延期されました

ブラウザ実装状況

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

機能 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() 未サポート 未サポート ? 未サポート 未サポート 未サポート

関連情報

ドキュメントのタグと貢献者

 このページの貢献者: inkusu, lv7777, fscholz, ethertank, sosleepy, Marsf
 最終更新者: inkusu,