ブラウザは,実に寛大である。少しくらい変な HTML でも,結果オーライできれいに出てしまう。
本当は,HTML はかなり厳格なものなのである。もし,「きちんとした HTML の文法」に従わないと表示されないブラウザがあったら,失礼ながら地球上の少なからぬサイトがブラウザのチェックにひっかかり見ることすらままならないだろう。
しかし現実は寛大である。なら細かいことはいいじゃないか,とおっしゃるかもしれない。しかし,情報の伝達には一定のきまりが必要なのである。ここまで読み進められた方なら,情報を発信することのほかに,いかにうまく伝達するかを考える余裕があるはずだ。
ここでは,HTML の決まりの中で,ごく基本的なものに触れておく。
注意:この Section の斜体で示された HTML は誤った例である。
HTML では「ここから~ここまで」の中にさらに「ここから~ここまで」が入ることもしばしばである。
このときに,ある「ここから~ここまで」と別の「ここから~ここまで」は互いにクロスしてはならない。重なる場合は,一方が他方の中に完全に収まっていなければならない。要するに,もっとも手前にある「ここから」に対応する「ここまで」をまず書かねばならない。
たとえば,
文章中で太字にし,さらに斜体にする。 |
と表示させる場合,こう書いたら誤りである。
文章中で<B>太字にし,さらに<I>斜体にする</B></I>。 |
この場合,もっとも手前の <I> よりも先にその前に開いた <B> を閉じてしまったのが禁じ手である。<B>~</B> と <I>~</I> の範囲がクロスしてしまっている。
正しくは,
文章中で<B>太字にし,さらに<I>斜体にする</I></B>。 |
となる。また,
文章中で太字にし,さらに斜体にして,太字だけやめる。 |
の場合は,面倒でも
文章中で<B>太字にし,さらに<I>斜体にして,</I></B><I>太字だけやめる</I>。 |
と書かなくてはならない。
このような範囲のクロスは,フォントを指定したとき,または <A> でジャンプを作ったときにおかしがちである。つねに「いちばん最後にかいた『ここから』は何か」を気にとめておきたい。
とうぜん,「ここまで」が必要なものにそれを書かないのは問題外である。
属性値を書くときに値を "..." でくくるのはどんなときなのだろうか?
基本的にはすべてくくるのだが,次の場合は " を省略してよい。
属性値が半角の数字,アルファベット(大文字・小文字),ピリオド「.」,ハイフン「-」のみからなるとき
それ以外の場合はくくる必要がある。簡単にいえば,「記号や空白を含む場合はくくる」のである。空白の場合は,くくらないとどこまでが値なのかわからなくなるから当然であろう。
たとえば,
COLOR=#FFFFFF WIDTH=100% |
は誤りで,
COLOR="#FFFFFF" WIDTH="100%" |
と書かなくてはならない。
HTML には,「文章:文字を書いてはいけないところ」がある。
などがある。考えてもみれば,「箇条書きだ」といっているのに項目以外のところに文章を書いたり,「表だ」といっているのにセルの内側でないところに文字を書いたりするのはおかしい。
実際,ブラウザでもこれに関してはおかしな出力をする場合が多く,とくに最後の <TABLE> のミスをやった場合,Netscape Navigator では悲惨な結果になる。<TR>,<TD>,<TH> を書き間違っても起こるので特に Internet Explorer でチェックをするときは気をつけたい。
HTML の文法はさらに複雑で,要素どうしの上下関係,入れ子の可不可も詳細に決められている。だが,これくらいは最低限守っていただきたい。