XHTML文書の中にCSSソースを組み込む場合はCDATAセクションが入ったstyle要素を使いますが、XHTML文書同様、CDATAセクションも拡張子と密接な関係があります。
【XHTML】
<style type="text/css"> <![CDATA[ body { background-color: #000000; color: #ffffff; } ]]> </style>この書式でウィンドウズ版IE(v6.0)、Netscape (v7.1)、Mozilla(v1.7.12)、Firefox(v1.5)、Opera(v8.50)のブラウザで確認するとCSSのスタイルが反映されていません。いっぽう、この書式で「html」の拡張子を「xhtml」の拡張子に変更すると、ウィンドウズ版IE(v6.0)以外は、Netscape、Mozilla、Firefox、Operaで反映されています。上記のCDATAセクションの使い方は文法的に正しいのですが、XHTML文書の現状は“XML形式のHTMLファイル”です。XML形式のHTMLファイルとはXML (XHTML)の文法で書かれ、かつ、拡張子が「html」のファイルのことです。厳密な意味でのXML文書ではありません。
次に以下のようにHTMLのコメント用に使われる「<!--」「-->」の記号でCSSソースを囲み、拡張子が「html」のファイルの場合、ウィンドウズ版IE(v6.0)のブラウザでは表示されますが、そのほかのNetscape (v7.1)、Mozilla(v1.7.12)、Firefox(v1.5)、Opera(v8.50)のブラウザでは反映されません。ただし、拡張子を「xhtml」に変更するとウィンドウズ版IE(v6.0)以外のNetscape (v7.1)、Mozilla(v1.7.12)、Firefox(v1.5)、Opera(v8.50)のブラウザで、反映されています。
【XHTML】
<style type="text/css"> <![CDATA[ <!-- body { background-color: #000000; color: #ffffff; } --> ]]> </style>XHTML文書ではstyle要素内に「<」、「&」、「--」、「<!--」 などの記号を含ませると、特殊な記号として解釈され、エラーとなるとされていますが、実際はブラウザの種類およびバージョンで確認してみないとわからない部分があります。(script要素にCDATAセクションを使う場合も同じです。)
【参考】
以下のようにHTMLと同じようにCDATAセクションの入らないstyle要素を使って指定するとXML形式のHTMLファイルの場合だと、どのブラウザでも表示されますが、拡張子を「xhtml」に変更するとNetscape (v7.1)、Mozilla(v1.7.12)、Firefox(v1.5)、Opera(v8.50)の各ブラウザでスタイルが反映されていません。
【XHTML】
<style type="text/css"> <!-- body { background-color: #000000; color: #ffffff; } --> </style>【まとめ】
総合するとCSSはXHML文書の内部ではなく、CSSファイルの外部スタイルシートとして使うことを推奨します。特殊な記号を使った場合でもエラーの心配がなく、現状では最も無難で確実な方法だと思います。または、上記のようにCDATAセクションの入らない、かつ、コメントタグ(<!-- -->)が含まれたstyle要素でCSSソースを組み込んでください。もし、CDATAセクションが入ったstyle要素を使う場合は種類の異なるブラウザをインストールして確認することをおすすめします。また、特殊な記号を入れないようにしてください。
XHTML文書と外部スタイルシートの作り方