この記事はHTML 4/XHTML 1での<style>要素についての解説記事です。
HTML 5での<style>要素に関する解説記事は、HTML 5 リファレンス内のHTML 5での<style>要素をご覧ください。
スタイルシート言語の記述である<style>要素についての解説です。
<style>要素とは、スタイルシート言語で記述された要素です。
スタイルシート言語(通常はカスケーディングスタイルシート(CSS))を直接HTML文書に記述する事で、当該文書にのみ有効なスタイル定義を行う事が出来ます。
<style>要素は、以下の文書型で利用出来ます。
<style>要素はスタイルシートモジュールに属します。
<style>要素は文書本体内には現れ得ず、従って<head>要素(文書のヘッダ)内にて記述されます。
<style>要素の内容はスタイルシート言語となります。
HTML 4.01では、以下のように内容を注釈宣言にしても、スタイルシート言語として認識されます。
<style type="text/css"><!--(スタイル定義が入ります)--></style>
しかしながら、XHTML 1.0及びXHTML 1.1では、内容を注釈宣言にした場合、内容となっているスタイルシート言語は認識されなくなります。
XHTMLで問題が起こらないようにするには、以下のように<![CDATA[ ]]>マーク宣言を行う必要がありますが、逆に巧く行かなくなる場合もあるようです。
<style type="text/css">/*<![CDATA[*/(スタイル定義が入ります)/*]]>*/</style>
]]>」をスタイルシート中に含める事は出来ません。<style>要素には以下の属性が定義されております。
記述しているスタイルシート言語のMIMEタイプを値にします。
CSSを利用する場合はtype="text/css"属性となります。
<style>要素に依るスタイルシート言語の記述では、title属性の有無や値に依り扱いが異なります。
詳しくはHTMLでのスタイルシート言語の扱いをご覧下さい。
本来、HTML文書に記述される以上、スタイルシートの <, >, & などは全て文字参照で書かれるべきです。
HTML 4.01では余り問題にされませんが、XHTMLでは<style>要素の内容を<![CDATA[ ]]>マーク宣言にしない場合、 <, >, & などを文字参照にしないとXMLパースエラーになってしまいます。
一方で、旧式のユーザエージェントには<![CDATA[ ]]>マーク宣言が正常に認識されない場合もあります。
このように、HTML文書中にスタイルシート言語を記述するのは実は問題が多いのです。
また、<style>要素での記述では、HTML文書にスタイルを記述するため、幾つも文書がある場合には管理が難しくなります。
なるべく、外部にスタイルシート定義ファイルを用意して<link>要素でリンクするようにしましょう。