生成されたコンテンツを使用する1つのオプション:
.borders {
width:500px;
height:500px;
position: relative;
background:#efefef;
border-top:10px solid red;
border-bottom:10px solid green;
}
.borders::before,
.borders::after {
content: '';
position: absolute;
width: 10px;
top: 0;
bottom: 0;
background-color: #000;
}
.borders::before {
left: 0;
}
.borders::after {
right: 0;
}
JSフィドルデモ。
またはネストされたHTMLを使用する場合(本当に必要な場合):
<div class="borders">
<div class="innerBorder left"></div>
<div class="innerBorder right"></div>
</div>
.borders {
width:500px;
height:500px;
position: relative;
background:#efefef;
border-top:10px solid red;
border-bottom:10px solid green;
}
.borders .innerBorder{
content: '';
position: absolute;
width: 10px;
top: 0;
bottom: 0;
background-color: #000;
}
.borders .left {
left: 0;
}
.borders .right {
right: 0;
}
JSフィドルデモ。
そして、左と右がラッピング要素のであり、幅が子孫のによって制御される単一のネストされた要素border-color
のbackground-color
ソリューションmargin
:
<div class="borders">
<div class="inner"></div>
</div>
CSS:
.borders {
width:500px;
height:500px;
background-color: #000;
border-top:10px solid red;
border-bottom:10px solid green;
}
.borders .inner {
background-color: #efefef;
height: 100%;
margin: 0 10px;
}
JSFiddleデモ。</p>