ブラウザ

2002.02.16 IE6の標準準拠モードがらみのメモ: 2001年6月の「IE6 CSS Tips」や2001年8月の「Internet Explorer 6 リリース」でも触れましたが、MSIE6には「後方互換モード」と「標準準拠モード」があって、HTML文書の最初の行にDTDを書くと(もちろんDTDを示すURIのことです、以下同じ)「標準準拠」になります。細かいことは色々あるでしょうが、このサイト的にいちばん問題になるのは、テーブルの左右の余白を auto にすることでテーブルをセンタリングするという手。標準準拠モードにしておけば簡単にできることで、IE6ベータの時点からそれでやってきてました。ところが――

いろいろあって、x2xというしくみを試験導入しました。黙ってテストしてましたがすでにトップページとarticles/4/xx/の合計約25ページは、これに置き換わっています。どのページでも、?xhtml=11 をつけて呼ぶと有効なxhtml1.1形式、?xhtml=10 をつけて呼ぶと有効なxhtml1.0形式を返すようになってます(通常は環境によって自動切り替え&両方に対応できる新しいブラウザで見るぶんには、ソースの細部が違うだけで表示上は違いなし)。もちろんソースのソースは同じ。同じソースのソースからHTML4.01なソースを生成することも容易ですし、相手がモジラとかならクライアントサイドでxmlから変換させるというのもアリだろうし最終的にどうするかまだ考え中……それはいいとして、問題は、上記のMSIE6の「標準準拠」とのかねあい。

もしxmlベースにして、今のeuc-jpで通すと、xmlとしては1行めにxml宣言を書くことが必須でした。が、上に書いたように、msie6は1行めがdtdでないと標準準拠モードにならず、autoというキーワードが無効になってふべん。

だから、プラクティカルには、IEを認識したら、xml宣言はしないで文書タイプの行から出力すればいいわけです。IEはxhtmlの場合、それでOK。単なるxml(HTTPヘッダがつくとは限らない)と違ってxhtmlではレスポンスヘッダでエンコーディングを教えているので、文書内でエンコーディングを明示しなくてもコーディングは分かるわけです。



COMPAQ Evo D3S(C-1.3G)(DVD.128MB.17TFT)

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。