私は2つのdiv(100px x 100px)を積み重ねており、下部のdivの上部に黒い境界線があります。フィドルを参照してください。
<div id="top"></div>
<div id="bottom"></div>
div {
width: 100px;
height: 100px;
}
#top {
background: tomato;
}
#bottom {
border-top: 1px solid black; background: gold;
}
上のdivを使用して、下のdivの境界線を隠したいと思います。(この場合、境界線を削除することはできません)。
通常、これを行うには、両方のdivを設定position: relative
し( div#oneがdiv#twoよりも大きいことを確認します)、次にdiv#oneに追加します。fiddleを参照してください。cssは次のようになります。z-index
z-index
margin-bottom: -1px
div {
width: 100px;
height: 100px;
position: relative;
}
#top {
z-index: 9999;
margin-bottom: -1px;
background: tomato;
}
#bottom {
z-index: 1;
border-top: 1px solid black;
background: gold;
}
しかし、私は以前にいじっていましたが、上部のdivをフロートさせ(負の下部マージンを維持しながら)、下部のdivをクリアすると(垂直に積み重ねられたままになるように)、position: relative
またはz-を使用する必要がないことに気付きました。上部のdivに負の下部マージンを追加する限り(下部の上部マージンが負であるのではなく)、境界線を非表示にするインデックス-フィドルを参照
div {
width: 100px;
height: 100px;
}
#top {
float: left;
margin-bottom: -1px;
background: tomato;
}
#bottom {
clear: both;
border-top: 1px solid black;
background: gold;
}
これは問題なく機能します。作成するコードが少ないので、私はそれを好みます。では、ここで何が起こっているのでしょうか。これは、あるものを他のものの上に重ねる有効なクロスブラウザーの方法ですか、それとも私がいつも行っているように、z-indexを使用している最初の方法に固執するのが最善ですか?