last modified 2nd/Nov. 2000
HTML 4 では、タグの要素名、属性名は半角英字で定義されています。しかし、大文字と小文字は区別しません。
一方、属性の値は、属性の種類によって、扱いが変わります。自然言語で指定できる属性の値を除けば、全て半角英数字で定義されており、このとき全角文字は誤りです。
HTML 文書は要素の積み重ねで構成されています。要素は開始タグから終了タグまでで定義され、その間が要素の内容です。
あらゆる要素の開始タグ、終了タグに現れる要素名(p, ul, li
, ect. )は大文字と小文字を区別しません。
<BLOCKQUOTE>, <blockquote>, <BlockQuote>
は全て同じように、 BLOCKQUOTE 要素の開始タグとして解釈されます。
但し、 HTML 4 の後継バージョン XHTML では大文字と小文字を区別し、要素タイプは小文字でしか定義されていません。慣れの為にも、HTML ソースは全て小文字で書くように推奨します。
因みに、 <BLOCKQUOTE>
は明確な誤りです。要素は半角英字でしか定義されていませんので、全角文字は誤りであり解釈できません。
要素毎に利用できる属性が定義されています。属性は、要素の開始タグに記述し、原則「属性="値"」と云う形で現れます。
<a href="../index.hmtl">TOP Page</a>
上の例は A 要素です。開始タグに現れている href
が属性です。あらゆる属性名 (href
, etc.) は大文字と小文字を区別しません。
<a HREF="../index.html">, <a href="../index.html">, <a HRef="../index.html">
は全て同じように A 要素の開始タグとして解釈されます。
但し、 <a HREF="../index.html">, <a href="../index.html">
は HTML としては誤りです。後者は要素名と属性名の間が全角スペースになっています。半角英字でしか定義されていないので、全角文字は誤りであり、解釈できません。
属性の種類によっては、指定できる値がキーワードで定義されているものがあります。これらは全て半角で定義されているので全角文字は誤りです。自然言語 (%Text;
) で指定できるもの以外の属性値は半角英数字しか許されません。
大文字と小文字の区別は属性によります。
例えば、 href 属性は [CS] で、且つ半角英字しか許されません。 href="./index.html"
と href="./Index.html"
は HTML として適当ですが、区別はされます。 href="./INDEX.html", href="./表紙.html"
は明らかに誤りで、解釈できません。
一方、 align 属性や charset 属性は [CI] ですが、半角英字しか許されません。例えば、 align="center"
と align="CENTER"
は区別されません。
属性によっては、キーワードが定義されておらず、任意に付けられる場合があります。この場合は一般に [CS] です。他に、自然言語 (%Text;
) で指定できる場合も [CS] として扱われます。
例えば、 name 属性や id 属性は [CS] で、且つ半角英字しか許されません。例えば、 id="toc"
と、 id="ToC"
は HTML として適当ですが、区別はされます。
また、 %Text;
の例は alt 属性です。 IMG 要素の必須属性である alt 属性の値は自然言語で、全角文字も許されます。例えば、 alt="家族の写真"
も HTML として適当です。
HTML ソースで半角スペースや改行は複数連なっていても、無視されるか、半角スペース一つにまとめられて解釈されます。
<ul> <li>リスト項目1</li> <li>リスト項目2</li> </ul>
LI 要素の前に半角スペースが二つ入っている;
<ul> <li>リスト項目1</li> <li>リスト項目2</li> </ul>
上の二つのソースは何れも等価です。後者はソースを読みやすくするために、半角スペースでインデント(字下げ)しています。ソースを読みやすくするために、適当に半角スペース、改行を挿入することは良くあります。
改行の削減;
<ul><li>リスト項目1</li> <li>リスト項目2</li></ul>
ソースの行数(引いてはバイト数=ファイルサイズ)を小さくするために、上のように書いても勿論構いません。
良くある誤りとして、ソースのインデントの積りで全角スペースやタブを挿入してしまう場合があります。 HTML 解釈装置にとっては、全角文字、タブは特殊記号のようなもので、特別扱いしなければならないので、解釈時に無視できません。
LI 要素の直前に全角スペースが挿入されている;
<ul> <li>リスト項目1</li> <li>リスト項目2</li> </ul>
HTML 解釈装置にとっては、全角スペースは無視できませんので、上のソースは次のように記述されたのと同じように扱います;
<ul> xx<li>リスト項目1</li> xx<li>リスト項目2</li> </ul>
HTML 文法としても明らかに誤りなので、このソースをどのように表示するかはブラウザの種類によります。
表示例;
テキスト・エディタでも、全角スペース一つは半角スペース二つと見た目上は区別できませんので、誤用しがちのようです。くれぐれも注意してください。
タグの途中で改行するのはあまり勧められません。特に、要素名の途中、「属性="属性値"」の途中では改行してはいけません。
許される例;
<blockquote cite="http://www.hoge.com/foo/" lang="en">
許されない例;
<block quote cite ="http://www.hoge.com/foo/" lang="en">
HTML では属性値に長さを指定することがあります。
%Pixels;
) の値は、スクリーンや紙などキャンバスに表示する際のピクセル数を表す整数である。従って、「 50 」という値は50 ピクセルを意味する。%Length;
) の値は、 %Pixels;、または水平・垂直方向で利用可能な空間に対するパーセンテージ。従って、「 50% 」という値は、可能な空間の半分を意味する。 %MultiLength;
) の値は、 %Length;、または相対指定である。この相対的な長さは、「 i*
」という形式で示す - 「 i
」は整数。相対指定では、分割可能な空間について、 "*
" のついた整数の比率に従って分配を受ける。値が "*
" の場合、これは "1*
" に等しい。
ピクセル値とパーセント値を割り当て終えた残りが 60 ピクセルだったとする。 "*、2*、3*
" という相対指定がある場合、 "1*
" には 10 ピクセル、 "2*
" には 20 ピクセル、 "1*
" には 30 ピクセルが割り当てられる。
%MultiLength; は、 %Length; に相対指定を加えたものであり、 %Length; は、 %Pixels; にパーセント (%) 指定を加えたものであることに注意。
長さの値は大文字小文字の区別に無関係である。
%Color;
HTML では色を指定する属性があります。これらは全て廃止予定の非推奨属性ですから、避けられる限り CSS を利用すべきでしょう。
DTD では、色を指定する値は %Color;
と云うパラメタ実体で現れます。大文字と小文字は区別されません。
色は、 HTML ではキーワードか、 RGB と云う形式で指定します。
#000000 | black | #800000 | maroon | #008000 | green | #000080 | navy |
#c0c0c0 | silver | #ff0000 | red | #00ff00 | lime | #0000ff | blue |
#808080 | gray | #800080 | purple | #808000 | olive | #008080 | teal |
#ffffff | white | #ff00ff | fuchsia | #ffff00 | yellow | #00ffff | aqua |
RGB 指定で、 [0, 3, 6, 9, c, f] だけで指定した色を Web Safe Colors と呼びます。このように指定した色は、 Win. と Mac. で同じ色に表示される筈です。逆に云えば、それ以外の色は OS によって、表示色が少し異なる可能性があります。不思議なことに、 16 色のキーワードは、 Web Safe Colors からは外れています。
Web Safe Color を用いても、モニタの性能や設定によって、実際の発色は異なります。色盲者などを考慮して、アクセッシビリティには十分注意してください。
次に、 WWW が成功した最大の要因であるリンク・システムと、 URL に付いて紹介します。