2017-05-23 13 views
0

私は、ユーザーがボックスの上を移動したときにメッセージを表示しているプロジェクトで作業しています。問題を抱えているシナリオを作成しました。Zインデックスとオーバーフローが正しく表示されない

青色のボックスは定義された250pxのフルサイズで表示され、含まれているdivが設定されている200pxにはクリッピングされません。これをラウンドするにはどうにかしています自己完結型である必要があるUserControlのすべての部分。

#first { 
 
    width: 200px; 
 
    height: 200px; 
 
    background-color: green; 
 
    overflow: hidden; 
 
} 
 

 
#second { 
 
    width: 50px; 
 
    height: 50px; 
 
    background-color: red; 
 
    position: relative; 
 
} 
 

 
#fourth 
 
{ 
 
    width: 250px; 
 
    height: 50px; 
 
    background-color: blue; 
 
    position: absolute; 
 
    z-index: 100; 
 
}
<div id="first"> 
 
    <div id="second"> 
 
     <div id="fourth"> 
 
     test 
 
     </div>  
 
    </div> 
 
</div>

+1

削除 '#first {オーバーフロー:隠さ}'それは意図した動作であり、何の仕事はCSS/HTMLの構造 – Justinas

答えて

0

これはあなたが後にしているものですが、あなたがする必要があるすべてはあなたのfirstのdivに見えるに隠されてからオーバーフローに変更され、完全にわからない:

#first { 
 
    width: 200px; 
 
    height: 200px; 
 
    background-color: green; 
 
    overflow: visible; /* change this */ 
 
} 
 

 
#second { 
 
    width: 50px; 
 
    height: 50px; 
 
    background-color: red; 
 
    position: relative; 
 
} 
 

 
#fourth 
 
{ 
 
    width: 250px; 
 
    height: 50px; 
 
    background-color: blue; 
 
    position: absolute; 
 
    z-index: 100; 
 
}
<div id="first"> 
 
    <div id="second"> 
 
     <div id="fourth"> 
 
     test 
 
     </div>  
 
    </div> 
 
</div>

+0

これは、私がスクロールバーをまだ含めたいと思っていたので、私が完全に意図していたものではありませんが、第4 divを最初のものの外に動かすこととは別に仕事がないようです。だから、私は要素を配置しようとすることができますかどうかを確認するつもりですそれはエッジが含まれているdivのどこに動作し、含まれているdiv内に表示されます – ccStars

2

変更:

#first { 
width: 200px; 
height: 200px; 
background-color: green; 

}に

#first { 
    width: 200px; 
    height: 200px; 
    background-color: green; 
    overflow: hidden; 

}

つまり、overflow:hiddenを削除して、希望の青いdivが表示されます。

+1

を変更するの周りに離れて存在しないため、[答える方法](HTTPS:/ /stackoverflow.com/help/how-to-answer) – Nimish

+1

これはコメントであり、答えではありません。 –

0

有線はあなたが持って言ったように#最初の要素からoverflow: hidden;を削除します。そうしないと、内部のすべての要素が境界の外側に到達する必要がある場合、それらの要素はすべて切断されます。

#first { 
 
    width: 200px; 
 
    height: 200px; 
 
    background-color: green; 
 
} 
 

 
#second { 
 
    width: 50px; 
 
    height: 50px; 
 
    background-color: red; 
 
    position: relative; 
 
} 
 

 
#fourth 
 
{ 
 
    width: 250px; 
 
    height: 50px; 
 
    background-color: blue; 
 
    position: relative; 
 
    top: 0; 
 
    left: 0; 
 
    z-index: 100; 
 
}
<div id="first"> 
 
    <div id="second"> 
 
     <div id="fourth"> 
 
     test 
 
     </div>  
 
    </div> 
 
</div>

関連する問題