この文書については 正誤表 も参照してください。規範的な修正が含まれている場合があります。
また、 翻訳も参照してください。
Copyright © 2013 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved. W3C liability, trademark and document use rules apply.
HTML [HTML401] や SVG [SVG11] などのマークアップ言語は、ほとんどの要素にスタイル属性を提供し、その要素に適用されるインラインスタイル情報を保持します。本草案は、そのようなスタイル属性で使用できるCSS断片の構文と解釈について説明します。
このセクションは公開時点での文書のステータスを示します。他の文書が本書を置き換える場合があります。現在のW3C出版物の一覧と本技術レポートの最新改訂版は W3C技術レポートインデックス(http://www.w3.org/TR/)で確認できます。
本文書はW3C会員、ソフトウェア開発者、その他のW3Cグループや関係者によるレビューを受け、ディレクターの承認のもとW3C勧告となっています。これは安定した文書であり、参考資料や他文書からの引用に利用できます。W3Cの役割はこの勧告に注目を集め、仕様の普及を推進することです。これによりWebの機能性および相互運用性が向上します。
ワーキンググループの 実装報告も参照してください。1つのテストは合格していませんが、これはxml:baseや属性の(非)順序に関するブラウザ実装のバグによるもので、style属性自体の問題ではありません。HTML(HTML5のxmlシリアル化を含む)に関する同等のテストは複数の実装で合格しています。
前回バージョン以降、本書に変更はありません。
(アーカイブあり)公開メーリングリスト www-style@w3.org(利用方法参照)は、本仕様の議論に推奨されています。メール送信時は件名に “css-style-attr” を含め、できれば次のようにしてください: “[css-style-attr] …コメント要約…”
本書は CSSワーキンググループ(Style Activityの一部)によって作成されました。
本書は 2004年2月5日W3C特許ポリシーに準拠するグループによって作成されました。W3Cは、本グループの成果物に関連して行われたすべての特許開示の公開リストを管理しています。そのページには特許開示の方法も記載されています。ある個人が、その人が本質的な請求を含むと考える特許を知っている場合、W3C特許ポリシー第6節に従って情報開示しなければなりません。
一部の文書フォーマットは、著者が特定の要素に直接スタイル情報を適用するためのstyle属性を持っています。文書フォーマットがスタイル属性(‘style
’という名前か他の名前でも)を定義し、属性値としてCSSを受け付ける場合、本仕様はそのstyle属性の構文と解釈を定義します。
次の例は、HTML [HTML401] での style
属性の使用例です:
<p style="color: #090; line-height: 1.2">...</p>
文書や実装はCSS Style Attributes単体では適合できませんが、CSS Style Attributesの適合要件を満たし、スタイル属性を持つ文書言語においてCSSとスタイル属性の扱いを実装する場合は、CSS Style Attributesへの適合を宣言できます。
CSS Style Attributesへの適合性は次の2つのクラスで定義されます:
適合要件は記述的断言とRFC 2119の用語の組み合わせで表現されます。規範部分における "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", "OPTIONAL" という語句はRFC 2119の定義通りに解釈されます。可読性のため、本仕様ではこれらの語句はすべて大文字で表記されていません。明示的に非規範と記載されたセクション、例、注釈を除き、本仕様の全テキストは規範的です。[RFC2119]
この仕様の例は「例えば」という語で始まるか、class="example"
のように規範テキストから区別されます:
これは参考例の一例です。
参考注釈は「注:」で始まり、class="note"
で規範テキストから区別されます:
注: これは参考注釈です。
style属性の値は、CSS 宣言ブロック(括弧部分除く)の構文に一致しなければなりません。正式な文法は CSSコア文法の用語・規約で下記のように定義されます:
declaration-list : S* declaration? [ ';' S* declaration? ]* ;
CSS2.1の慣例に従い、上記ルールにはコメントトークンは表示されません。
インタープリタは、通常のCSSスタイルシートで宣言ブロック内容をパースする場合と同じ前方互換のパース規則で、style属性の値をパースしなければなりません。詳細は CSS2.1仕様第4章 を参照してください。[CSS21]
CSSスタイル属性構文には宣言リストの開始括弧がないため、style属性値中の閉じ括弧(}
)はスタイルデータを終了しません。単なる無効なトークンです。
style属性の宣言は、その属性が属する要素に適用されます。カスケードにおいて、これらの宣言は著者オリジンとして扱われ、いかなるセレクターよりも高い詳細度を持ちます。CSS2.1は、スタイルシートとスタイル属性がどのようにカスケードされるかを定義しています。[CSS21] スタイルデータ中の相対URLは、属性値をパースする際にstyle属性の要素(または要素ごとの解決が定義されていない場合は文書)を基準に解決されなければなりません。
カスケード上の違いを除き、style属性の宣言は、それらが対応する要素に適用されるCSSスタイルルールで指定された場合と全く同様に解釈されなければなりません。
CSSワーキンググループは、文書言語が単一要素に複数のCSS style属性を許可しないことを強く推奨します。文書言語で複数のCSS style属性が許可されている場合、各属性は独立してパースされ、個別のスタイルルールとして扱われなければなりません。その順序は文書言語で定義するか、未定義とします。
Daniel Glazman、Ian Hickson、Eric A. Meyer、Björn Höhrmann 各氏からのフィードバックに感謝します。