「水無月ばけらのHTMLリファレンス」は、HTML4.0 Transitional をベースに作成した要素リファレンスです。
リファレンスは要素のデータ表、属性のデータ表、解説、の三つから成っています。
要素のデータは以下のような表で示されます(表を意図しているのですが、ブラウザによっては表に見えないかも知れません。その節はご容赦を)。
要素名 | 適用バージョン | 開始タグ | 終了タグ | 分類 | 中身 | |||
---|---|---|---|---|---|---|---|---|
FONT | - | - | 3.2 | (4.0) | 必須 | 必須 | インライン | インライン |
「要素名」は要素の名前を示します。この例では FONT要素です。
「適用バージョン」は、その要素がどの HTML で使用できるかを示しています。HTML2.0, HTML2.x, HTML3.2, HTML4.0 のそれぞれについて、その要素が使えるときはそのバージョンナンバーを記し、使えないときは空欄としています。バージョンナンバーが括弧で括られている場合、その要素は「非推奨」とされているものです(「将来のため予約」というものにも括弧をつけています)。
この例では、HTML2.0 と HTML2.x では使えず、HTML3.2 では使えますが、HTML4.0 では非推奨とされています。
「開始タグ」「終了タグ」は、タグ省略の可否を示しています。「必須」と書かれていれば省略できませんし、「省略可」なら省略できます。ただし、省略可だからと言って常に省略できるとは限りませんので注意してください(「省略タグ機構」を参照のこと)。また、「禁止」とあるのは、空要素の終了タグ(</BR> など)です。これはタグの記述が禁止されていて、常に開始タグ単独で用いなければならないことを意味します。
この例では開始タグ終了タグ共に必須です。
「分類」は、その要素がどの要素の子要素となれるかを示すものです。たとえば "BODY"要素は "HTML"要素の子要素でなければならず、"P"要素など他の要素の中には入れられません。その場合、「HTMLの子要素」などと記述してあります。
また、「ブロック」「インライン」という分類があります。「ブロック」要素は文書のおまかな構造を規定するもので、これは中身が「ブロック」とされている要素の中に入れられます。「インライン」はテキストを装飾するもので、中身が「インライン」である要素の子要素となります。
この例では「インライン」ですから、中身に「インライン」を含む要素(P, DIV, EM, Q, ADDRESSなどなど、そして別の FONT要素も)の子要素となり得るわけです。
「中身」は、その要素の「内容モデル」を示します。中身が CDATA とされている要素もありますし、別の要素を子要素とする場合(要素内容)、 #PCDATA (いわゆる地の文)と子要素のどちらも中身となりうる場合(混合内容)、などがあります。
「インライン」のように、要素の分類を示すこともあります。その場合、「インライン」に分類される要素が中身となりうることを意味します。また、特に断りがない場合、それらが何度でも出現して良いと解釈してください。たとえば、<P>inline<EM>inlene</EM>inline<SPAN>inline</SPAN>inline</P>
のように、P の中にはいくつでも好きなだけインライン要素を置くことが出来ます。
この例では「インライン」です。インラインに分類される要素(EM, Q, STRONG, IMG, SCRIPT, FONTなど。要素じゃないけど #PCDATA も)が中身となります。
ちなみに、「長さゼロの #PCDATA」だけを含むこともできますので、<FONT></FONT>
のように中身を空っぽにすることもできます。意味はないでしょうが。
属性のデータも表として記されています。
属性の名前です。
どのバージョンで使える属性値かを示します。見方は要素の場合と同じです。
その属性がとる値を示します。データ型で記されている場合、いくつかの選択肢として記されている場合、唯一の選択肢として記されている場合、の三種類があります。
CDATA とか NUMBER などの データ形式が指定されています(そしてそのデータ形式の解説にリンクしています)。その形式に従って、任意の値を与えることが出来ます。
(left | center | right) のように、() の中に | で区切って列挙してあるうちから一つを選んで属性値とします。(left | center | right)の場合、属性値は "left" "center" "right" のどれかとなるわけです。この場合、大文字小文字は区別しませんので、"LEFT" と書いても構いません。
ある属性がこの形式の属性値をとる場合、属性名を省略することができます。ただしその省略はしない方が賢明です。詳しくは短縮タグ機構 を参照してください。
前のケースと似ていますが、(readonly) のようにたった一つの選択肢しかありません。よく見ると、その値は属性名と同じになっています。これは属性を指定するか否かの二者択一で、ある機能を ON にするか OFF にするかを選択するものです。このような属性を「ブール型属性」(boolean attribute) と呼びます。
この属性も属性名を省略できます。<INPUT readonly="readonly">
を単に <INPUT readonly>
と略記できるのですが、これは必ず略記するようにしてください。どういうわけか、省略しない形を認識できないブラウザが存在するのです。
その属性を指定しなかったときに採用される値です。
この欄が(必須)とされている場合、その属性値は省略できず、必ず指定しなければならないことを意味します。何かの間違いでこれが指定されていないときは、そのマーク付けは不正となります。が、ブラウザは勝手に値をでっち上げて表示を続けるでしょう。この例としては、IMG の src属性などが挙げられます。
多くの場合、この欄は(依存)となっています。これは環境に依存するという意味です。たとえば TD の align 属性を省略したときは、親である TR の align属性が継承されます。TR にも指定がない場合、TBODY や COL や COLGROUP などの align属性を継承します。それらもない場合は、ブラウザが決定します(おそらく言語コードや書字方向などによって right か left のどちらかになります)。
テキスト型の属性値が(依存)とされているとき、空文字列が採用されるとは限らないことに注意してください。たとえば、あるブラウザは、IMG の alt 属性の省略時の値として "[INLINE]" という文字列を与えます。
ちなみに、 HTML4.0 では alt の指定が必須とされています。
備考です。
最後に解説があります。各属性の意味や間違いやすいポイントなどを解説しています。
リファレンスは HTML4.0 の Loose.dtd を元に作っています。仕様書と DTD の記述が矛盾するときは、DTD の方を優先しています。
また、表中のデータは、基本的に HTML4.0 のものを載せています。HTML2.0, HTML2.x, HTML3.2 のデータも含んでいますが、これはあくまでおまけです。
非推奨要素・属性の基準は DTD によります。HTML2.0, HTML2.x, HTML3.2 では、DTD 中で deprecated のマーク区間に入っているものを非推奨としています。HTML4.0 では、StrictDTD に存在しないものを非推奨としています。ですからフレームも非推奨とされています。
HTML2.0 には Level1 と Level2 がありますが、これは Level 2 を基準としています。HTML2.0 Level 1 にはフォームが存在しないのですが、これは非推奨とはしていません。HTML2.0 Level 1 を使う人は注意してください。(でも、そんな人いるのかしら?)
解説文中に、それぞれの要素がどのように表現されるのかを示していることがありますが、それはあくまで目安です。環境によっては全く異なる表現になることもあります。