ウィンドウをリサイズするとレイヤーの位置がずれる

症状

レイヤー(layer要素/ilayer要素/position: absolute; が指定された要素)を表示させたページでは、ウィンドウをリサイズするとレイヤーが当初配置した位置からずれてしまう。

例示

<div style="position:absolute; left:100px; top:10px; background:aqua;">
A<img src="img01.png" usemap="#map1" alt="NN4.x目次へ">
<map name="map1">
<area shape="circle" coords="23,23,22" href="../nn4x.html">
</map>
</div>
ANN4.x目次へ

画像と文字を含むレイヤーを配置しています。

スクリーンショット

左がリサイズ前、右はリサイズ後のレイヤーです。IEでの表示でもレイヤーがずれていますが、これはbody要素のマージンを%値指定にしているため、ウィンドウのリサイズ時にマージンのサイズも変わってしまったためです。

IE6IE6.0での表示(標準モード)

NN4NN4.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では未修正です。

関連記事

スポンサーリンク

固定配置されたボックスの幅が文字サイズ変更に対応しない

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る