1

「test」という名前の div をクリックすると、「outside」という名前の div も表示され、「inside」という名前の div の z-index が高くなります。

私の問題は、位置を「内側」に絶対に設定しているときに、マージンの底に帰することができないことです。そして、位置を相対に設定すると、div「テスト」がその下に配置されます。

少しわかりにくいかもしれませんが、問題はとてもシンプルです。ここでフィドル:http://jsfiddle.net/malamine_kebe/QRpqs/

私のCSSは次のとおりです。

#insideAbsolute{
    background-color:#f8f8f8;
    position: absolute;
    top:0;
    left:20%;
    width:60%;
    margin-top:35px;
    margin-bottom:35px;
    z-index:3;
    border-radius: 7px;
    box-shadow: 6px 6px 20px black; 
}

#insideRelative{
    background-color:#f8f8f8;
    position: relative;
    top:0;
    left:20%;
    width:60%;
    margin-top:35px;
    margin-bottom:35px;
    z-index:3;
    border-radius: 7px;
    box-shadow: 6px 6px 20px black; 
}


#outside{
    position: fixed;
    left:0;
    top:0;
    height: 100%;
    width: 100%;
    background-color: black;
    opacity:0.7;
    z-index:2;
    background-attachment:fixed;
}

.test{
    z-index:1;
}

私のHTML:

<div id="outside"></div>
<div id="insideAbsolute"></div>
<div id="insideRelative"></div>

<div class="testAbsolute">test position absolute</div>
<div class="testRelative">test position relative</div>

そして私のjQuery

$('#outside').hide();
    $('#insideAbsolute').hide();
    $('#insideRelative').hide();

    $(document).on('click', '.testAbsolute', function () {
        $('#outside').show(0, function() { 
            $('#insideAbsolute').show(0, function() {
                $(this).html('<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>');
                $(document).on('click','#outside',function(){
                    $('#insideAbsolute').html('');
                    $('#outside').hide();   
                });     
            }); 
        });

    });  

    $(document).on('click', '.testRelative', function () {
        $('#outside').show(0, function() { 
            $('#insideRelative').show(0, function() {
                $(this).html('<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>');
                $(document).on('click','#outside',function(){
                    $('#insideRelative').html('');
                    $('#outside').hide();   
                });     
            }); 
        });

    });  
4

1 に答える 1

1

ここであなたのためのちょっとしたトリックです。これを CSS に追加します。

#insideAbsolute:after{
    content:'';
    height : 35px;
    width : 100%;
    position : absolute;
    bottom : -35px;
}

それは「偽の」マージンを生み出します!

フィドル: http://jsfiddle.net/QRpqs/1/

于 2013-06-06T20:03:47.963 に答える