- ベストアンサー
レイヤーとセレクトボックスが重なった場合について
- レイヤーとセレクトボックスが重なった場合には、レイヤーの表示が優先されるようにすることが可能です。
- 以下のようなHTMLを使用して、スクロール時にレイヤーを固定し、セレクトボックスの表示を優先させます。
- しかし、ブラウザがIE6の場合には対応が必要です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
この現象については、IEのバグというよりそういう仕様だとのことです。 http://cssbug.at.infoseek.co.jp/detail/winie/b112.html ですから、この場合テーブルの下をくぐらせるのは無理なのではないかと・・・ どうしてもテーブルの上にくるのが嫌なのでしたら、テーブルと重なっている間だけ、selectBoxを非表示にしてみては如何でしょうか? [ スクリプト部 ] Btype = "NN"; if (navigator.appName.toUpperCase().indexOf("EXPLORER") >= 0) Btype = "IE"; if (navigator.userAgent.toUpperCase().indexOf("OPERA") >= 0) Btype = "OP"; function keepMessage() { var LH = document.all["sampleTable"].offsetHeight; var ST = document.all["sc"].offsetTop; var SH = document.all["sc"].offsetHeight - document.all["tb"].offsetTop; var T = document.body.scrollTop; if (T + LH >= ST && T <= ST + SH) document.all["sc"].style.visibility = "hidden"; else document.all["sc"].style.visibility = "visible"; document.all["sampleTable"].style.top = document.body.scrollTop; document.all["sampleTable"].style.left= document.body.scrollLeft; setTimeout("keepMessage()",1); } if (Btype == "IE") window.onload = keepMessage; [ HTML変更部分 ] <body> <div id="sampleTable" style="position : fixed; position : expression('absolute'); z-index : 2;"> <table border=1 bgcolor="white" id="tb"> <select name="出身" id="sc" style="position : relative;">
お礼
すばやい回答ありがとうございます。 さらに代案まで挙げていただいて大変助かりました。 ありがとうございました。