正しいHTMLのすすめ

Internet Explorer 6の日本語正式版がリリースされたので さっそくインストールした。 以前と比べていくつか変更点があるようだがそれはどうでもよくて、 今回の主題はIE6にしたとたんにこのHPが ちゃんと表示できなくなったということだ。 それもかなり激しく。

最初は原因が思いつかなかったのだが、 実はここのHTMLではDOCTYPEでstrict.dtdを指定しているので、 それを外してみると驚くことに今までどおり表示された。 つまり、IE6ではstrict.dtdが指定されてるとちゃんと厳密に 解釈するらしい。 逆にいえば、これまではstrict.dtdとか指定しても厳密に解釈してなかったのだ。

ここで、DOCTYPEの指定をやめるという解決方法もあるのだが、 それではあまりに悔しいので、厳密にはどこが間違っているかを探すことにした。 すると、最近のW3Cはなんでもありみたいで、 なかなかいい感じにHTMLとCSSの検証ができるようになっているのだ。

で、おもな原因は何だったかと言うと、 ゆるい解釈では単位を書いてない場合ピクセルとして認識されるのだが、 厳密には0以外の長さにはすべて単位が必要らしい。 というわけで、 長さの指定が軒並みエラーになっていたので激しく表示が崩れていたのだ。

他にも、ボックスか文字のレイアウトがstrict.dtdを指定するときとしないときで 若干違うと思われる。これによって微妙に入らなかったりとかするのだが、 面倒なので適当に長さを変更してごまかした。 このせいで逆にIE6以外ではうまく表示できなくなったかもしれない。 あと、Aタグはname属性しかなくても閉じタグが必須らしい。