馬鹿貝で摺れている
行徳のまな板だなんてひどいじゃないか
©2005 TMYK All Rights Reserved.
<html>
<head>
<title>タイトル</title>
<style type="text/css"><!--
p {color:#147414;}
.essay {font-size:mediuml;}
#copy {font-size:small;}
--></style>
</head>
<body>
<p>馬鹿貝で摺れている</p>
<div class="essay">行徳のまな板だなんてひどいじゃないか</div>
<hr>
<div id="copy">©2005 TMYK All Rights Reserved.</div>
</body>
</html>
XHTMLにおけるstyle要素の内容の記述方法
style要素の要素内容は、HTML4.01まででは「
CDATA」、XHTMLでは「
#PCDATA」として定義されています。つまり、XHTMLでは、[<]はHTMLタグの開始、[&]は
実体参照の開始と認識されてしまうのです。HTML4.01以前の場合には、style要素の内容全体をコメント開始マーカー[<!--]、コメント終了マーカー[-->]で囲ってコメントにする慣習がありましたが、XHTMLの場合には文字通りコメントとして認識され、
スタイルシートが無視されてしまう可能性があります。
上記問題の対応策として一番簡単なのが、
link要素を用いて外部
スタイルシ-トを利用する方法です。こうすることで過去のブラウザでも問題なく利用できます。
<link rel="stylesheet" type="text/css" href="foo.css">
<?xml-stylesheet href="foo.css" type="text/css"?>
また、SGMLでは特定の範囲を"<![CDATA["と"]]>"で囲むことによって「#PCDATA」を「CDATA」に変更できる仕様となっています。XHTMLで推奨されている1つの方法ですが、ブラウザによってはサポートされていない場合もあります。
<style type="text/css">
<![CDATA[
<!--
...スタイルシート...
-->
]]>
</style>
style要素の内容を[<!--]と[-->]で囲まない方法もあります。XHTML1.0の仕様書で推奨されています。ただしstyle要素をサポートしていない古いブラウザなどでは、スタイルシートがそのまま表示されてしまう可能性があります。また、#PCDATAによって解釈される文字は利用できなくなります。
<style type="text/css">
...スタイルシート...
</style>
<style type="text/css">
@import url(foo.css); /* (C1- ie4- N6-) style要素内の一番最初に記述 */
</style>