1.XMLの宣言
XHTMLは、XML言語でもあるのでXML宣言をする必要があります。
<書式>
<?xml version="1.0" encoding="Shift_JIS"?>
XMLのバージョンとエンコードする文字コードを指定します。
XMLは、デフォルトでUNICODE(UTF-8、UTF-16)を使用しているため、
UNICODE以外で使用する場合は、必ず文字コードを指定します。
2.DTDの宣言
HTMLとXHTMLには、DTD(Documment Type Defifition:文字型定義)というものがあり、
XHTMLでは、バージョンごとに必ず宣言しないといけません。
DTDの宣言は、バージョンによって以下のように宣言します。
1)XHTML1.0厳密型DTD(Strict)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2)XHTML1.0移行型DTD(Transitiona)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3)XHTML1.0フレーム設定型DTD( Frameset)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
4)XHTML Mobile 1.0
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
5)XHTML Basic 1.0
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Basic 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
6)XHTML1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3.xmlns属性と lang属性の定義
xmlns属性には、XML ネームスペース(名前空間)を指定します。
lang属性と xml:lang属性の両方で指定します。両方指定する必要があるのは、後方互換を考慮したもので、
両方とも同じ属性値を指定します。属性値となる言語コードは、日本語であれば "ja"、英語であれば "en"、
中国語であれば "zh" のように記述します。
1)XHTML1.0の場合
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
2)XHTML1.1の場合
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
3)XHTML Mobile 1.0 XHTML Basic 1.0の場合
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
4.meta http-equiv宣言
XMLのencoding属性に加えて、<head>タグの中にいいかのような宣言が必要です。
1)XHTML1.0の場合
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
2)XHTML1.1の場合
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=Shift_JIS" />
ただし、application/xhtml+xmlを正しく解釈できないWWWブラウザが存在します。このようなブラウザで、
文書を開こうとすると、ダウンロードが始まってしまいます。したがって、現状で、XHTML1.1の規格に完全に基づいた
文書を作成というのは、アクセシビリティと引き換えになる可能性が高いです。
5.プログラム上の基本ルール
1)終了タグを省略してはいけない。
HTML | XHTML | |
<ul><li>…<li></ul> | → | <ul><li>…</li><li>…</li></ul> |
<br> | → | <br />, <br></br> |
6.
大文字と小文字の区別
XHTML(XML)では、
タグの要素と属性は必ず小文字で記述する必要があります。
<html>は、よいが<HTML>の記述はダメ。
7.
属性値は、必ず引用符(””)で囲む。
XHTML では全ての属性値をダブルクォーテーション(")、またはシングルクォーテーション(')の引用符でくくらなければなりません。
慣習上、ダブルクォーテーション( ")を使用するのが一般的です。
<table border="1">
<tr><td><img src="abc.gif" width="200" height="100" />
</td><tr>
</table>
8.属性値の略記はできません。
checked属性, selected属性, compact属性, nowrap属性, disabled属性, noresize属性などの属性には属性値がありませんが、
XHTML では必ず属性値を記述する必要があります。属性値の記述方法は、属性名をそのまま属性値として繰り返し記述するだけです。
<input type="radio" checked="checked" />
<option value="…" selected="selected">…</option>
9.name属性からid属性へ
XHTMLでは、name属性は廃止の方向で以下のように記述します。
HTML4.01の場合:<a name="top">
XHTML1.0の場合:<a id="top" name="top">
XHTML1.1の場合:<a id="top">
10.style要素とscript要素について
XHTMLでは、スタイルシートや他のスクリプトは、以下の理由でインラインで記述するより、外部ファイルにリンクしることが望ましいと
されている。
HTML では、スクリプトやスタイルの内容をブラウザに表示させないように、"<!--内容のエスケープ-->" を使えましたが、
XHTML では旧来のテクニックは使用できず、スクリプトやスタイルの内容に 「<」や「&」があると実体として、
そのまま 「<」,「&」 のように記号として認識してしまいます。場合によってはマークアップとして認識されることもあるので、
これを回避するために "<![CDATA[内容のエスケープ]>" を用います。
ただし、ブラウザによっては "<![CDATA[内容のエスケープ ]>" をサポートしていない場合があります。
そのためスクリプトやスタイルは外部化することが推奨されています。 しかし、どうしても外部化できないスクリプト等については
コメント・アウトさせないようにするのも一つの手法です。たとえば、Google Adsense については、わざとコメント・アウトさせないように
「<!--」と「-->」の部分を除いてしまうと良いでしょう。これまで後方互換のためにコメント・アウトする手法は常套手段とされていますが、
script要素には Netscape Navigater 2.0, Internet Explorer 3.0 より対応、style要素には Netscape Navigater 4.0, Internet Explorer 4.0
より対応なので、これよりも古いブラウザを使っているユーザーは、現在(おそらく)いないので、いちいちコメント・アウトする必要はありません。
もちろん、機能を持たない単なるコメントについては、従来通りの「<!--」と「-->」を用いて、"<!--コメント・アウト-->" を行うことが可能です。
1)スタイルシートをインラインで定義する場合
<style type="text/css">
<![CDATA[
<!--
--- スタイルの定義 ---
-->
]]}
</style>
2)スタイルシートを外部ファイルで定義する場合
<link rel="stylesheet" type="text/css" href="○○○.css" />
3)スクリプトをインラインで記述する方法
<script type="text/javascript">
<![CDATA[
--- スクリプトの記述 ---
]]>
</script>
4)スクリプトを外部ファイルで記述する方法
<script type="text/script" src="○○○.js"></script>
11.要素の禁止事項について