@document

by 3 contributors:

これは実験段階の機能です。
この機能は複数のブラウザで開発中の状態にあります。各ブラウザで用いるために、適切なベンダー接頭辞が必要な場合があります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザの将来のバージョンで変更になる可能性があることに注意してください。

概要

@document 規則は、ドキュメントの URL に基づいて、その中に含まれるスタイル規則を制限する @ 規則です。これは主にユーザ定義スタイルシート用に設計されています。@document 規則には 1 つ以上のマッチング関数を指定します。関数が URL に適用されると、規則がその URL に効果を及ぼします。

主な用途はユーザ定義スタイルシートですが、著者定義スタイルシートにも使えます。

利用可能な関数は次の通りです:

  • url()。正確な URL にマッチします
  • url-prefix()。URL が、与えた値で始まるときマッチします
  • domain()。URL が、与えたドメイン内のもの(またはサブドメインのもの)であるときマッチします
  • regexp()。URL が、与えた正規表現 にマッチするときにマッチします。正規表現は URL 全体にマッチする必要があります。

構文

url()url-prefix()、および domain() 関数に与える値は、単一引用符または二重引用符で囲うこともできます。regexp() 関数に与える値は、引用符で囲わねばなりません

regexp() 関数に与えるエスケープされた値は CSS によってさらにエスケープされる必要があります。例えば、一つの . (ピリオド)は正規表現ではどんな文字にもマッチします。リテラルのピリオドにマッチさせるには、まず正規表現の規則を使ってエスケープし(\. にします)、次に CSS の規則を使ってエスケープしなければなりません(\\. にします)。

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

@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 に 延期されました

ブラウザ実装状況

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

関連情報

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

Contributors to this page: ethertank, sosleepy, Marsf
最終更新者: ethertank,
サイドバーを隠す