私のウェブサイトにモーダルポップアップを入れたいと思います。それはのHTMLは次のようである:z-index for position:固定
<div id="thePopup" class="popup" style="display:none;">
<div class="popup-shadow">.</div>
<h3>My Details</h3>
<p>Message....</p>
</div>
は、それから私は、CSSを持っている(まあ、CSSにコンパイル実際SASS、。)このように:ディスプレイにthePopup
を設定ボタンがあり
.popup {
z-index:10000;
width:32em;
position:absolute;
left:20%;
width:60%;
.popup-shadow {
position:fixed;
top:0%;
left:0%;
width:100%;
height:100%;
z-index:9000;
background-color:#999999;
/* I have yet to do it, but the shadow will be slightly transparent */
}
}
:ブロックユーザーがクリックするとポップアップは、私のウェブサイトのコンテンツパネルの1つの中に入れ子になっています。 position:absolute
なので、親パネルの上に表示されます。 thePopup
をposition:fixed
に設定しないと、ユーザーの画面の高さよりも大きくなる可能性があります。また、ユーザーが画面上を上下にスクロールできるようにしたいと考えています。しかし、私はポップアップではない画面上のどこでも暗くしたいと思っています。ユーザーに対話する必要があることをユーザーに示すためです。
これは私が問題に遭遇するところです - popup-shadow
は、zレベルが低いにもかかわらず、thePopup
のinfrontにレンダリングされています。なぜこれがわからないのですか? popup-shadow
divを取り除くと、thepopup
が期待どおり画面に表示されます。これはなぜ誰にも分かりますか? z-indexの値が小さくても、子divは常にその親の上に表示されますか?
その半分の作品 - 'popup'の子要素は影の前にありますが、ポップアップ自体はそうではありません。 'popup'にCSSの背景色が与えられていることは明らかです。 – Oliver
'position:inherit'をポップアップボックスに設定すると、デモが表示されます。http://jsfiddle.net/rathoreahsan/kFaYy/ –
問題はそのコンテキストでは、position:inheritはposition:static 。ポップアップとして正しく動作させるためには 'popup'が必要です。これには簡単な解決策はないようです。私は 'popup-shadow'を' popup'の子要素ではなく、別の方法で扱わなければなりません。 – Oliver