XHTMLはXMLとして書かれたHTMLです。
XHTMLってなんだ?
- XXHTMLは、Extensible HyperText Markup Language(エクステンシブル ハイパーテキスト マークアップ ランゲージ)
- XHTMLはHTMLとほとんど同じです
- XHTMLはHTMLよりも厳密です
- XHTMLはXMLアプリケーションとして定義されたHTMLです。
- XHTMLはすべての主要ブラウザでサポートされています
なぜXHTMLなのか?
インターネット上の多くのページに「悪い」HTMLが含まれています。
このHTMLコードはほとんどのブラウザで問題なく動作します(たとえHTMLの規則に従わなくても)。:
<html>
<head>
<title>This is bad HTML</title>
<body>
<h1>Bad HTML
<p>This is a paragraph</body>
さまざまなブラウザテクノロジで構成されています。一部のブラウザはコンピュータ上で動作し、
一部のブラウザは携帯電話または他の小型デバイス上で動作します。より小型の装置はしばしば「悪い」マークアップを解釈するためのリソースまたは能力を欠いている。
XMLは、文書を正しくマークアップする必要がある(「整形式」にする)マークアップ言語です。
XHTMLは、HTMLとXMLの長所を組み合わせて開発されました。
XHTMLはXMLとして再設計されたHTMLです。
HTMLとの最も重要な違い
文書構造
- XHTML DOCTYPEは 必須です
- <html> のxmlns属性は 必須です
- <html>, <head>, <title>, <body> は 必須です
XHTML 要素
- XHTML要素は正しくネストされている必要があります
- XHTML要素は常に閉じていなければなりません
- XHTML要素は小文字にする必要があります
- XHTML文書は1つのルート要素を持たなければならない
XHTML の属性
- 属性名は小文字にする必要があります
- 属性値は引用符で囲む必要があります
- 属性の最小化は禁止されています
<!DOCTYPE ….> は必須です
XHTML文書はXHTML DOCTYPE宣言を持たなければなりません。
<html>, <head>, <title>, と <body> 要素も記述する必要があり、 <html>
xmlns属性はドキュメントのxml名前のスペースを指定する必要があります。
この例は、最低限必要なタグを含むXHTML文書を示しています:
<!DOCTYPE html
PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<title>Title of document</title>
</head>
<body>
some content
</body>
</html>
XHTML要素は正しくネストされている必要があります
HTMLでは、いくつかの要素は次のように互いに不適切にネストすることがあります。:
<b><i>This text is bold and italic</b></i>
XHTMLでは、すべての要素は次のように互いに適切にネストされている必要があります。:
<b><i>This text is bold and italic</i></b>
XHTML要素は必ず閉じる必要があります
閉じてないので間違い:
<p>This is a paragraph
<p>This is another paragraph
閉じているので正しい:
<p>This is a paragraph</p>
<p>This is another paragraph</p>
空の要素も閉じる必要があります
間違い:
A break: <br>
A horizontal rule: <hr>
An image: <img src=”happy.gif” alt=”Happy face”>
正しい:
A break: <br/>
A horizontal rule: <hr/>
An image: <img src=”happy.gif” alt=”Happy face”/>
XHTML 要素は小文字でなければならない
間違い:
<BODY>
<P>This is a paragraph</P>
</BODY>
正しい:
<body>
<p>This is a paragraph</p>
</body>
XHTML属性名は小文字でなければならない
間違い:
<table WIDTH=”100%”>
正しい:
<table width=”100%”>
属性値は引用符で囲む必要があります
間違い:
<table width=100%>
正しい:
<table width=”100%”>
属性の最小化は禁止されています
ダメ:
<input type=”checkbox” name=”vehicle” value=”car” checked />
正しい:
<input type=”checkbox” name=”vehicle” value=”car” checked=”checked” />
ダメ:
<input type=”text” name=”lastname” disabled />
正しい:
<input type=”text” name=”lastname” disabled=”disabled” />
HTMLからXHTMLに変換する方法
- 各ページの最初の行にXHTML<!DOCTYPE>を追加します。
- 各ページのhtml要素にxmlns属性を追加します
- すべての要素名を小文字に変更
- 空の要素をすべて閉じる
- すべての属性名を小文字に変更
- すべての属性値を引用する