同じ境界線スタイルの 2 つの div があり、高さが異なり、互いに背中合わせになっています。それらの間の共通の境界線が表示されないようにします。これをhtmlとcssでどのように行うことができますか?
4 に答える
多くの人が、小さい方div
を大きい方に重ねて、左の境界線を背景色と同じ色に設定することを提案しています。これに関する問題は、境界線が重なる2 つの場所で 1 ピクセルのギャップが生じることですdiv
。
これを回避するために、左の境界線を明示的に削除し、背景を非透明にすることができます。
HTML
<div id="one"></div><div id="two"></div>
CSS
#one, #two {
width: 100px;
border: 1px solid black;
display: inline-block;
}
#one {
height: 200px;
}
#two {
height: 100px;
position: relative;
left: -1px;
background: white;
border-left: none;
}
編集:
thirdender が述べたように、とmargin-left
の組み合わせの代わりに使用することもできます。これは、以前のスタイルや要素の配置方法によっては、より適切なオプションになる場合があります (まだ設定されていない場合は、ほとんどの場合より適切です)。position
left
margin-left
display: inline-block
Zach Shipleyは、次の CSS のブラウザー サポートについても指摘し、追加しました。
*display: inline;
zoom: 1;
vertical-align: bottom;
@Tony_Henrich さんの質問にあるコメントを参考にしてください。この状況では、通常border-left-color
、小さい方の div を 2 つの div に等しくすることで「偽造」しbackground-color
ます。次に、小さい div に設定position: relative
しleft: -<border-width value>
て、大きい div と重なるようにします。
ここに jsfiddle があります: http://jsfiddle.net/5Q3A5/
小さい方の div を右側に配置して、左側の div の境界線と重なるようにし、border-left が設定されていることを確認します
設定border-right: ... border-left: ...