レイヤー(layer要素/ilayer要素/position: absolute; が指定された要素)を表示させたページでは、ウィンドウをリサイズするとレイヤーが当初配置した位置からずれてしまう。
- Category: Netscape Navigator, Windows
例示
<div style="position: absolute; left: 400px; top: 10px; width: 96px; height: 64px; background: aqua;">
A
<img src="http://css-bug.jp/img/common/img01.png" usemap="#map1" alt="バグ詳細ページへ戻る" />
<map name="map1">
<area shape="circle" coords="23,23,22" href="./" />
</map>
</div>
実際の表示については検証ページをご覧ください。
スクリーンショット
左がリサイズ前、右はリサイズ後のレイヤーです。IEでの表示でもレイヤーがずれていますが、これはbody要素のマージンを%値指定にしているため、ウィンドウのリサイズ時にマージンのサイズも変わってしまったためです。
IE6.0での表示(標準モード)
NN4.78での表示
補足
スレッドでは「クライアントイメージマップを含むレイヤー」にリサイズ時のずれが発生するとありますが、イメージマップが含まれていない場合でもずれは発生します。
以下のいずれかの方法により、この不具合を回避することができます。
- 文書に以下のスクリプトを入れる。
<script type="text/javascript"> <!-- var ua = navigator.userAgent; var NN4 = (ua.indexOf("MSIE")==-1 && ua.indexOf("Mozilla/4")==0)?1:0; if(NN4) {window.onresize = rebuild;} function rebuild(){location.reload();}; //--> </script> - body要素の開始タグを以下のように記述する。
<body onresize="JavaScript:if (document.layers) location.reload()"> - 参照:NC4.xのリサイズバグ対策
修正状況
NN4.78では未修正です。


