Daily Archives: 2003/12/08

Bookmark

盗撮で逮捕の専門学校生、改造拳銃&実弾大量に隠し持つ

自己アピールは盗撮と改造拳銃。

大阪の男、ネットで知り合った千葉の女性宅で…

今日も無職 20 代が大活躍です。

Read more »

IE 6 スクロールバグと DOCTYPE スイッチ

本当は昨日書こうと思って後回しになった回避方法。
最近の主なブラウザはファイル冒頭の文書型宣言 ( DOCTYPE 宣言) により W3C 勧告の標準仕様に基づく解釈を行う標準準拠モードと、後方互換性を重視した過去慣習的な解釈を行う Quirks モードを切り替える DOCTYPE スイッチを備えています。Internet Explorer 6 における CSS の拡張によれば IE 6 では HTML 3.2 以前とシステム識別子のない HTML 4.0 Frameset と Transitional 、そして DOCTYPE 宣言自体がない「 HTML 以外の何か」といった場合に Quirks モードとなるようです (補足しておくと IE 6 の DOCTYPE スイッチは他のブラウザに比べて判別が非常に甘い上に融通が利かないため、XML 宣言のついた XHTML 文書も Quirks モードで解釈されてしまう不具合があります) 。
マイクロソフト サポート技術情報 832270 で説明されているスクロールバグは、この IE 6 の標準準拠モードでは再現されません。つまり、手っ取り早くスクロールバグを無くすには HTML を標準準拠モードで解釈させるようにすれば良いわけです。
こんなフィルタを Proxomitron に適用することでファイル冒頭に DOCTYPE 宣言を補完して標準準拠モードにすることができます。


Name = "Avoid IE6 Scroll Bug"
Active = TRUE
Limit = 256
Match = "<start>"
Replace = "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\n"

この方法では XML 宣言のついたページでパースエラーとなるので、XML 宣言がある場合は消す必要が出てきます。


Name = "Remove XML declaration"
Active = TRUE
Limit = 256
Match = "<?xml *>"

これで全ての問題解決となると嬉しいのですが残念ながらまだ最後の問題が残っています。それは標準準拠モードで解釈された時の表示が Quirks モードの時と異なることが多いという、当然と言えば当然の問題です。特に目立つのがテーブルレイアウトを使用したページでテキストがセンタリングされる事例とフォントサイズが一回り小さくなる事例の二つ。前者は恐らく text-align の解釈の違い、後者はデフォルトのフォントサイズ違いによるものです。
結局は読みにくい表示を取るか、以前のスクロールを取るかになるので回避方法とは正確には呼べないかもしれません。私もスクロールで困ると言ったら 2 ちゃんの長いスレを読む時ぐらいなので、フィルタ Avoid IE6 Scroll Bug を 2ch / bbspink のみに適用するだけで満足してます。

雑記

何だかんだで「CloverHeart’s」インストできず。だから早めに HDD 買おうって思ったのに。