XHTML文法

XHTMLコードの記述には純粋なHTML文法が必要です。

より多くのXHTML文法規則:

  • 属性名は小文字でなければなりません
  • 属性値は引用符で囲まなければなりません
  • 属性は簡略化できません
  • name属性の代わりにId属性を使用します
  • XHTML DTDは強制使用されるHTML要素を定義しています

属性名は小文字でなければなりません

これは間違った:

<table WIDTH="100%">

これは正しい:

<table width="100%">

属性値は引用符で囲まなければなりません

これは間違った:

<table width=100%>

これは正しい:

<table width="100%">

属性は簡略化できません

これは間違った:

<input checked>
<input readonly>
<input disabled>
<option selected>
<frame noresize>

これは正しい:

<input checked="checked" />
<input readonly="readonly" />
<input disabled="disabled" />
<option selected="selected" />
<frame noresize="noresize" />

以下はHTMLの簡略属性リストおよびXHTMLでの変更が示されています:

HTML XHTML
compact compact="compact"
checked checked="checked"
declare declare="declare"
readonly readonly="readonly"
disabled disabled="disabled"
selected selected="selected"
defer defer="defer"
ismap ismap="ismap"
nohref nohref="nohref"
noshade noshade="noshade"
nowrap nowrap="nowrap"
multiple multiple="multiple"
noresize noresize="noresize"

name属性の代わりにid属性を使用します

HTML 4.01では、以下の要素に対してname属性が定義されています:a, applet, frame, iframe, img, そしてmap。

XHTMLではname属性の使用は推奨されません。代わりにidを使用するべきです。

これは間違った:

<img src="picture.gif" name="picture1" />

これは正しい:

<img src="picture.gif" id="picture1" />

重要な互換性ヒント:

あなたのXHTMLが現在のブラウザと互換性を持つように、"/"記号の前に追加のスペースを追加する必要があります。

言語属性(lang)

lang属性はほぼすべてのXHTML要素に適用されます。それは要素内の内容の使用される言語のタイプを定義します。

もしある要素でlang属性を使用する場合、追加のxml:langを追加する必要があります:

<div lang="no" xml:lang="no">Heia Norge!</div>

強制使用されるXHTML要素

すべてのXHTMLドキュメントはファイルタイプ宣言(DOCTYPE宣言)を行う必要があります。XHTMLドキュメントでは、html、head、body要素が存在し、title要素はhead要素内に存在する必要があります。

以下は最小化されたXHTMLファイルテンプレートです:

<!DOCTYPE Doctypeがここにあります>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>タイトルがここにあります</title>
</head>
<body>
</body>
</html>

ヒント:ファイルタイプ宣言はXHTMLドキュメント自身の一部ではありません。それはXHTML要素でもなく、閉じタグもありません。

ヒント:XHTMLでは、<html>タグ内のxmlns属性は必須です。しかし、XHTMLドキュメントにこの属性がなくても、w3.orgの検証ツールはエラーメッセージを表示しません。なぜなら、「xmlns=http://www.w3.org/1999/xhtml」は固定の値であり、コードに含まれていない場合でも、この値が<html>タグに追加されるからです。

次の章でXHTMLドキュメントタイプ宣言に関する多くの知識を学びます。