その他編

決してHTML講座なのではなくって



このページは siteCTS の旧版です。
URI確保のために保存してあるだけで、二度と更新されません。
JavaScript が有効の時は以下に移動先URIが表示されます。

このページはHTML4.01に準拠しています



その他編の目次

下へ飛びます








"引用符"

<SPAN class="quote"> <SPAN class='quote'>

属性の値を囲む引用符はダブルでもシングルでもいいことになっているが、どういうわけかシングルだとうまく動かないダメなブラウザがあるらしい。
まぁ普通に使う分には「Shift+2とShift+7はどっちが押しやすいか」で問題ないが、スクリプトでタグを書く時は事情が異なってくる。
引用符にはカッコみたいに「開き」と「閉じ」の区別がないので、

document.write("<SPAN class="quote">");

みたいなことができない。

document.write("<SPAN class='quote'>");
document.write("<SPAN class=\"quote\">");

のように、シングルを使うか、あるいは"をエスケープしてやる必要がある。

また、引用符は特定の条件に限り、省略することができる。
特定の条件とは、属性の値が「半角の英数字とピリオド、マイナス(ハイフン)のみ」である時。つまり、

 <FONT size=-1 face=Verdana>
× <FONT size=+1 face=Century Gothic> プラスと空白がNG

である。特に空白は最悪で、上記の例だと「Gothic」が宙に浮き、属性として扱われてしまう。しかも、たまたまCenturyという書体があるから、さらに妙なことが起きる。「Century Gothicってこんな書体だっけ?」なんて喜劇も想像できよう。当然ながら、日本語(2バイト文字)の時は空白がなくとも省略不可だ。(IEは認識してくれるが)
俺の目指すHTML4.01では、これに加えてコロン( : )とアンダーバー( _ )も許可されるものの、HTML2.0やHTML3.2との互換性を考えれば、使うべきではない。

もちろんすべて囲むのが一番安全であるし、仕様書もそれを求めているのだが、スクリプト内のタグとなると、これがなかなか難しい。言い換えると面倒くさい。
JavaScriptに対応しているブラウザなら、正規の省略を正しく認識してくれることを期待し、これに限って省略可としよう。

邦訳仕様書




▲ PageTop



<!--コメント-->

よく「コメントタグ」なんて呼ばれるが、思いっきり間違いである。これはHTMLではなく、従って「タグ」ではない。
これはSGMLの「注釈宣言」というやつで、<!-->の3つの部品から成る。<!<!DOCTYPE>でも出たように、特別な意味をもつ。

  • まず、<!で「宣言を開始する」というものになる
  • 直後にある--がコメントを表す記号で、<!と合体することで「注釈宣言」となり、以降がコメント扱いとなる
  • 次に--が出てきたら、そこでコメントは終わる
  • 最後に>で宣言を閉じ、HTMLに復帰(?)する

コメントは、大まかに以上のような仕組み(正確に言うと、意味のない空の宣言をしているだけ)になっているため、

<!--ここはコメント--ここはコメント?-->

というのは不可である。
しかし、実際には<! >の間をコメントとして解釈するブラウザが多く、上記の例でも大抵は正しくコメントアウトされるが、明らかな間違いである。
この寛容なるエラー修正のために、コメント中に>が混じると、そこでコメントが終わってしまう珍妙なブラウザもあるようだ。(IEはその辺うまく調整してくれるみたいだけど)

なお、

<!--ここはコメント-- --ここもコメント-->

なら正しい。要するに--は出現のたびにコメント開始とコメント終了で意味が変わる。
最後の-->はまったく別の部品なので、(半角の)空白を入れようが改行しようが構わない。(ただし<!--は分離不可)
ただし、これは理屈上の話であり、W3Cでは無用な--を含めないように勧告している。

<!------------------------------------>

ソースの目印にこんなことしてるのを実際によく見るが、--の数をちゃんと勘定しないと、正確に解釈するブラウザでは文末まで全部コメントという驚愕の事態になりかねない。
結局、<!--コメント-->という基本形を守るのが一番無難ということか。

邦訳仕様書