HTMLでは従来、〈style〉タグや〈script〉
タグに対応していないブラウザがタグ内の内容を表示してしまわないよう、設定箇所全体を「〈!–」「–〉」で囲って記述する手法がよく使われていました。しかし、XHTMLの使用では、このように記述すると、その部分はコメントとして無視されてしまいます。同様の手法を使い、それぞれの内容をスタイルやスクリプトとして処理させたい場合には、XHTMLでは「〈![CDATA[」と「]]〉」で囲んだ「CDATAセクション」を利用します。
しかし、CDATAセクションかをサポートしていないブラウザでは、スタイルシートやスクリプトがうまく動作しない可能性があります。こうした問題を防ぐために、外部スタイルシートの使用が推奨されています。
name属性ではなくid属性を使用する
HTMLでは名前の指定にname属性を使用する要素がありますが、以下の要素については属性ではなく、id属性で指定します。
a、applet、form、frame、iframe、img、map
id属性に対応していない古いブラウザに配慮して、同じ名前を指定したname属性を同時に記述しておくこともできます。
・要素についての禁止事項
幾つかの要素は、その中に含められる要素についての禁止事項があります。
a要素 ほかのa要素を含んではならない
pre要素 img、object、big、small、sub、supの各要素をふくんではならない
button要素 input、select、textarea、label、button、form、fieldset、iframe、isindex 要素を含んではならない
label要素 ほかのlabel要素をふくんではならない
form要素 ほかのform要素を含んではならない
要素名、属性は小文字で書く

HTMLでは要素名や属性に大文字・小文字の区別がなく。大文字・小文字のどちらでも記述できました。XMLでは、大文字と小文字は異なるものとして区別されるので、XHTMLでは要素名や属性共に、全て小文字で書く必要があります。
・正しく入れ子にする
タグを入れ子にする場合、終了タグが互い違いにならないよう、より内側のタグから順番に閉じていくようにします。
例:間違った記述 〈p〉タグと要素は〈em〉別のもの〈/p〉です〈/em〉
正しい記述 〈p〉タグと要素は〈em〉別のもの〈/em〉です〈/p〉
XHTMLではこのように開始タグと終了タグの位置関係が適切で、書く要素が正しく入れ子になるなど、XMLの規則に準じた正しい公文で書かれている状態を「整形式」と言います。
属性値
・属性値は引用符で囲う
HTMLではいっていの条件を満たす場合に限り引用符を省略することができました。XHTMLでは属性値は常に引用符で囲わなくてはなりません。
例:間違った記述 〈table rows=4〉
正しい記述 〈table rows=”4”〉
・属性を最小化しない
HTMLでは属性名と、属性値が同じ場合に属性名を省略する「最小化」表記が認められており、この書式が一般的に使われていますが、XHTMLでは最小化することはできません
〈要素名 属性名=”値”〉
例:間違った記述 〈option selected〉
正しい記述 〈option selected=”selected”〉
ただし、ブラウザによっては最小化しない表記をサポートしていないこともあります。