style要素
Updated / Published
style
要素(style sheet information)は head
要素内に当該文書内にのみ有効な制作者スタイルシートを組み込みます。HTML では style
要素の内容は解析されない文字データ(Character DATA)だったのですが、XHTML では style
要素の内容は解析対象となる文字データ (Processed Character DATA) になったため、マークアップ区切り文字は意味を持ち、文字実体参照などは展開されます。たとえば、HTML4.01 では style
要素に対応していない古い UA(style
要素には Netscape Navigater 4.0, Internet Explorer 4.0 より対応)のための後方互換として "<!-- -->
" のコメント宣言を使うことが常套手段とされていましたが、現在では style
要素に対応していないような環境で閲覧しているユーザは皆無なので、"<!-- -->
" を使ってコメント・アウトする必要はありません。
XHTML では "<!-- -->
" を使ってスタイルシートをコメント・アウトしてしまうと、現行の主要ブラウザにおいてはありませんが、本当に仕様通りに解釈するUAであればコメントとみなして、スタイリングが行われないことになります。XHTML では style
要素内に記述するスタイルシートは "<![CDATA[ ]>
" の CDATAセクションを使うことで解析されない文字データ(Character DATA)にすることが可能ですが、古いUAへの互換性への配慮として、XHTML では文書内に直接スタイルシートを記述するのではなく、別にスタイルシートファイルを用意して link
要素で外部から参照させる手法が推奨されています(CSS概論を参照)。
type
属性は使用するスタイルシートの言語の種類を示すために必須属性となっています。スタイル言語にはいくつかありますが、各視覚環境の UA の対応状況などから CSS(カスケーディングスタイルシート)と呼ばれる種類が一般的に使用されています。他にもウェブ上で使われているスタイル言語に、XSL などがあります。CSS が (X)HTML文書に対しての見栄え(レイアウト)を定義し、XSL は XML文書に対しての見栄え(レイアウト)を定義します。また、XHTML1.0 には id
属性がありますが、HTML4.01 と XHTML1.1 にはありません。
- バージョン
- HTML4.01(S,T,F)
- XHTML1.0(S,T,F)
- XHTML1.1
- 要素型
- head要素の子要素
- 開始タグ
- 必須
- 終了タグ
- 必須
- 非推奨
- -
- 内容モデル
- スタイルシート
media属性
- バージョン
- HTML4.01(S,T,F)
- XHTML1.0(S,T,F)
- XHTML1.1
- 指定要素
- style
- 必須
- -
- 非推奨
- -
- 属性値
- all
- screen
- tty
- tv
- projection
- handheld
- braille
- aural
制作者スタイルシートを適用するメディアを限定して適用するようにメディアの種類を指定します。複数指定する場合は、カンマ(,
)で区切って指定します(例:media="screen,tv,projection"
)。メディアには次の9種類のキーワードがあります。キーワードは半角アルファベットの大文字・小文字が区別されません(case-insensitive)。
- all
- すべての環境を出力対象とする
- screen
- パソコン画面を出力対象とする
- tty
- 文字幅が固定の機器を出力対象とする
- tv
- テレビベースのブラウザを出力対象とする
- projection
- プロジェクタを出力対象とする
- プリンタを出力対象とする
- handheld
- 携帯用機器を出力対象とする
- braille
- 点字出力機器を出力対象とする
- aural
- 合成音声出力機器を出力対象とする
type属性
- バージョン
- HTML4.01(S,T,F)
- XHTML1.0(S,T,F)
- XHTML1.1
- 指定要素
- style
- 必須
- 必須属性
- 非推奨
- -
- 属性値
- MIME
使用するスタイルシートの種類を MIMEで指定します。style
要素の必須属性です。UA がスタイル情報を正しく解釈するための情報となります。各UA の対応状況などから CSS(カスケーディングスタイルシート)が一般的に使われています。CSS の MIMEは "text/css
" です。必須属性ですが、省略されていても、多くのUAは自動的に"text/css
"として認識します。
なお、HTML5では、省略があっても、どの UA も CSS のスタイルシートとして認識することから、スタイル言語に CSS を使用する場合は、type
属性の指定も不要(省略可能)になりました。