重複する境界線は、常に少しトリッキーです。あなたの場合、絶対位置とz-インデックスを使って作業することはお勧めできません。これは事態をより複雑にし、ブロック要素のネイティブな振る舞いにもう頼ることができなくなります。
はのは、あなたのHTMLは次のようになりましょう:
<div class="parent">
<div class="child yellow"></div>
<div class="child blue"></div>
<div class="child red"></div>
</div>
あなただけ:first-child
に上部の境界線を適用することで、重複子どもの錯覚を達成することができます。あなたの周りの定期的な境界線を追加した場合ので、
.child {
border-style: solid;
border-width: 0 2px 2px 2px;
background: white;
}
.child:first-child {
border-top-width: 2px;
}
.yellow {
border-color: yellow;
}
.blue {
border-color: blue;
}
.red {
border-color: red;
}
親が少しハックを必要とする:あなたはトップに動的に多くのdivを追加した場合でも、最初のものは、常に「上」のように見えるものになりますそれはの子どもたちの周りにと表示されます。
.parent {
width: 500px; /* or any other width */
height: 100vh; /* or any other fixed height */
overflow-y: auto; /* make scrollable */
box-shadow: inset 2px 2px 0 black, inset -2px -2px 0 black;
}
インセットbox-shadow
は、親の内側に実線の錯覚を作成します。子供のボーダーの下に表示されないようにするには(ボックスシャドウはボーダーより少しぼやけている傾向があります)、子供が背景色を持っていることを確認する必要があります。
編集:Here's a demo。
親コンテナに収まらないdivが多い場合はどうすればいいですか?親コンテナをスクロールしたいですか? – repzero
非常に神の質問@repzero - 親コンテナは常にブラウザウィンドウの高さになり、y軸に沿ったオーバーフローはスクロールする必要があります –
[興味があれば、子供の高さを制御するflexboxの例です。](https://jsbin.com/mocame/1/edit) – misterManSam