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

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

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

例示

<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要素のマージンを%値指定にしているため、ウィンドウのリサイズ時にマージンのサイズも変わってしまったためです。

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

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

Search
オススメ書籍
Feeds

Return to page top