ブラウザ全体のスクロールバーの消去
ブラウザ全体のスクロールバーを消去するには次のように書けば良い。
document.body.style.overflow = “hidden”;
これは当然だと思っていた。ところがこれはIEの互換モードでの話で標準モードでは違った。
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml” xml:lang=”en” lang=”en”>
<body style=”overflow: hidden; border: solid 2px red;”>
test<br />
test<br />
test<br />
test<br />
test<br />
</body>
</html>
次の通りFirefoxではきちんとスクロールバーが消えているがIEだと消えてくれない。

試しにbody.style.overflow:scrollとしてスクロールバーを強制的に表示させてみると驚いた。

なんとIEの標準モードはブラウザのスクロールバーではなくてbodyオブジェクトのインラインにスクロールバーが展開されてしまう。これには参った。これも他のブラウザと全く違う動作で全然標準とは呼べないような…。
で、どうやってこの余計なスクロールバーを消すのかというと結局こうでした。
すごい独自仕様って感じ。しかもJavascriptから指定しても動かず、静的に指定しておかないとダメみたいです。こんな特殊な仕様、メモしておかないとまたいつかはまっちゃうね。
TrackBack URI : http://blog.ishiro.com/wp-trackback.php?p=167
コメント (0)
