DOCTYPEの空白スペースでレンダリングが変わる?

今更ながら標準モードだとか互換モードとかに悩まされていて、こないだはjavascriptでもこの問題に悩まされてました。
システム識別子の有無で互換モードになるのは有名な話ですが、HTML 4.01 Transitional の時に『//EN』の前に半角スペースがあるかないかで切り替わってしまうみたいです。

DOCTYPE 宣言 Firefox 2 Firefox 1 IE 7 IE 6 Opera 9 Opera 8 Safari 2 NN 8 NN 7 MacIE 5
なし 互換 互換 互換 互換 互換 互換 互換 互換 互換 互換
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> (//EN の前に空白無し。これが正しい公開識別子 ?) 互換 互換 互換 互換 互換 互換 互換 互換 互換 互換
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN"> (//EN の前に空白あり。これは正しくない公開識別子 ?) 標準 標準 標準 標準 互換 互換 標準 標準 標準 互換

hxxk.jp – DOCTYPE スイッチについての検証とまとめと一覧表 より引用

空白があるとfirefoxでは「未知の DOCTYPE 全て」と認識されて標準モードになってしまうみたいです。
今まで空白なんて気にしたことありませんでした。。

hxxk.jp – DOCTYPE スイッチについての検証とまとめと一覧表
Mozilla’s DOCTYPE sniffing

Trackback URI: http://blog.ochanocosaisai.com/wp-trackback.php?p=321

気軽に記事を評価してみて下さい。
1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 4.00 out of 5)
Loading ... Loading ...

コメントする

RSS feed for comments on this post · TrackBack URI · add to hatena hatena.comment 0 user add to del.icio.us 0 user add to livedoor.clip 0 user