Xhtml-vs-html
XHTMLとHTML
XHTMLはXMLアプリケーションであるという事実により、SGMLベースのHTML 4で完全に合法であった特定のプラクティスを変更する必要があります。 前の章ですでにXHTML構文を見てきたので、XHTMLとHTMLの違いは非常に明白です。 以下は、XHTMLとHTMLの比較です。
XHTMLドキュメントは整形式でなければなりません
整形式は、XMLによって導入された新しい概念です。 基本的に、これはすべての要素に終了タグが必要であり、それらを適切にネストする必要があることを意味します。
修正:ネストされた要素
<p>Here is an emphasized <em>paragraph</em>.</p>
誤:要素の重複
<p>Here is an emphasized <em>paragraph.</p></em>
要素と属性は小文字でなければなりません
XHTMLドキュメントでは、すべてのHTML要素と属性名に小文字を使用する必要があります。 XHTMLドキュメントはXMLドキュメントであり、XMLでは大文字と小文字が区別されるため、この違いが必要です。 たとえば、<li>と<LI>は異なるタグです。
終了タグはすべての要素に必要です
HTMLでは、特定の要素で終了タグを省略することが許可されています。 ただし、XMLでは、終了タグを省略することはできません。
修正:終了した要素
<p>Here is a paragraph.</p><p>here is another paragraph.</p>
<br><hr/>
間違った:終了していない要素
<p>Here is a paragraph.<p>here is another paragraph.
<br><hr>
属性値は常に引用符で囲む必要があります
数値を含むすべての属性値は引用符で囲む必要があります。
修正:引用された属性値
<td rowspan="3">
- INCORRECT:引用符で囲まれていない属性値*
<td rowspan=3>
属性の最小化
XMLは属性の最小化をサポートしていません。 属性と値のペアは完全に記述する必要があります。 compactやcheckedなどの属性名は、値が指定されていない要素では使用できません。
訂正:非最小化属性
<dl compact="compact">
誤:最小化された属性
<dl compact>
属性値の空白処理
ブラウザが属性を処理するとき、それは次のことを行います-
- 先頭および末尾の空白を削除します。
- 1つ以上の空白文字(改行を含む)のシーケンスを単一の単語間スペースにマップします。
スクリプトおよびスタイル要素
XHTMLでは、スクリプト要素とスタイル要素に「<」と「&」文字が存在する場合、それらを直接持つことはできません。その後、それらはマークアップの開始として扱われます。 「<」や「&」などのエンティティは、XMLプロセッサによってエンティティ参照として認識され、それぞれ「<」および「&」文字が表示されます。
CDATAでマークされたセクション内のスクリプトまたはスタイル要素のコンテンツをラップすると、これらのエンティティの拡張が回避されます。
<script type="text/JavaScript">
<![CDATA[
... unescaped VB or Java Script here... ...
]]>
</script>
別の方法は、外部スクリプトとスタイルドキュメントを使用することです。
_id_および_name_属性を持つ要素
XHTMLでは、_name_属性を_id_属性に置き換えることをお勧めします。 XHTML 1.0では、これらの要素の_name_属性は正式に廃止され、XHTMLの以降のバージョンでは削除されることに注意してください。
定義済みの値セットを持つ属性
HTMLとXHTMLの両方には、事前定義された限定された値のセットを持ついくつかの属性があります。 たとえば、 _ input_ 要素の type 属性。 HTMLおよびXMLでは、これらは*列挙属性*と呼ばれます。 HTML 4では、これらの値の解釈では大文字と小文字が区別されないため、 TEXT の値は text の値と同等でした。
XHTMLでは、これらの値の解釈では大文字と小文字が区別されるため、これらの値はすべて小文字で定義されます。
16進値としてのエンティティ参照
HTMLとXMLはどちらも、16進値を使用して文字への参照を許可します。 HTMLでは、これらの参照は*&#Xnn; または&#xnn; のいずれかを使用して作成できますが、XHTMLドキュメントでは&#xnn; *などの小文字バージョンのみを使用する必要があります。
<html>要素は必須です
すべてのXHTML要素は、<html>ルート要素内にネストする必要があります。 他のすべての要素は、ペアであり、親要素内に正しくネストされている必要があるサブ要素を持つことができます。 基本的なドキュメント構造は次のとおりです-
<!DOCTYPE html....>
<html>
<head> ... </head>
<body> ... </body>
</html>