スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
 |   | 

XML宣言とIE6.0について

  • 2006/04/06(Thu)
  • カテゴリー:(X)HTML

XHTMLはXMLに準拠させたHTMLであるので、記述の際にはXML宣言を記述することがW3Cによって強く奨励されています。

XML宣言は、すべてのXML文書に必須というわけではない。XHTML文書の制作者は、すべての文書でXML宣言を使うよう強く奨励される。文書のキャラクタエンコーディングがデフォルトの UTF-8 か UTF-16 以外のものであるときは、そうした宣言は必須である。

どら猫本舗のリファレンスカウンター>XHTML 1.0: 拡張可能ハイパーテキストマークアップ言語

あくまで奨励であるので必須ではないですが、問題となるのはXML宣言の有無によってDOCTYPEスイッチが切り替わるブラウザがあることです。

大抵のブラウザは、XML宣言の有無に関わらず標準準拠モードで解釈されるのに対し、IE6.0では後方互換モードで解釈します。
これはIE6.0の持つ固有のバグのせいでそうなってしまいます。

両モードでの大きな違いとして、後方互換モードではボックスサイズに関してwidthとheightにpaddingやborderの値も含めてしまいます。

以下、例の為のサンプルスタイルです。

  1. div#sample {
  2.     padding:5px;
  3.     border:1px solid #ccc;
  4.     width:200px;
  5.     height:100px;
  6. }

上記のようなスタイルを指定した場合、標準準拠モードでのボックス全体の横幅(高さも同様)は、width、左右padding、左右borderの値を合計した212pxとなりますが、後方互換モードではwidhの値がそのままボックスサイズとなり、200pxの横幅で表示されます。

このため、コンテンツ表示領域が左右padding、左右borderの値だけ狭められることになり、コンテンツ領域は188pxとなってしまいます。

また、IE6.0ではXML宣言有りの場合文字サイズにsmallなどの定義語を指定すると、一段階大きく表示されます。(small指定で本来のmediumの大きさを表示してしまう)
なのでサイズ固定にしたくない場合はパーセント指定が望ましいようです。

他にも以下のようなバグがあるようです。

あと、XML宣言入りの文書だとIE6の場合テーブル要素に文字サイズのパーセント指定が効かないので、表の中だけは固定サイズにしています。

ウェビンブログ>後につながるCSSデザイン

実際、バグの多いブラウザのようですが、IE6.0は現時点でトップのシェアを誇るブラウザなので、制作者側はこれを無視することはできないと思います。
IE6.0とうまく付き合っていくにはCSSの記述を工夫する必要があり、今後当ブログでもこれをテーマのひとつに盛り込もうと考えています。

※当ブログはXML宣言有りのXHTML-1.0-Transitionalで記述しています。

CM:0  |  TB:0  | 

コメント(-0件)

コメント投稿

コメントフォーム
項目名 記入欄

管理者だけが読めるようにする

トラックバック(-0件)


<< 当ブログについて

!importantを使ったIEバグ対処法 >>

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。