如何使用具有倾斜边框装饰的相邻div实现双边框

Kev*_*n J 5 html css css3

我正在尝试创建三个独立的容器,带有"漫画书带"的感觉.我希望最终结果看起来像这个图像,白色边框被黑色边框包围,并且它们之间有角度分隔线:

在此输入图像描述

这是我最接近实现这一点,但你会发现我错过了黑色的内部边界.我也不确定如何在顶部和底部绘制主黑色边框,并允许它们中断以使白色相交.(请在全屏模式下运行代码段):

.container {
    width: 1020px;
}

.clear{clear:both; font-size:0px;line-height:0px; display:block;}

.categorycta {
	border-top: 2px solid #000;
	border-bottom: 2px solid #000;
	background-color: #ffffff;
}

.bandtop {
	content: '';
	height: 10px;
	background-color: #ffffff;
	display: block;
	border-top: 2px solid #000;
}

.bandbot {
	content: '';
	height: 10px;
	background-color: #ffffff;
	display: block;
	border-bottom: 2px solid #000;
}

.categorycta .col {
	position: relative;
	height: 216px;
    width: 340px;
	float: left;
	background-size: cover;
}

.categorycta .col.left:after {
	content: '';
    line-height: 0;
    font-size: 0;
    width: 0;
    height: 0;
    border-bottom: 20px solid transparent;
    border-top: 216px solid #fff;
    border-left: 10px solid transparent;
    border-right: 0 solid #fff;
    position: absolute;
    top: 0;
    right: 0;
}

.categorycta .col.mid:before {
	content: '';
    line-height: 0;
    font-size: 0;
    width: 0;
    height: 0;
    border-bottom: 216px solid #fff;
    border-top: 20px solid transparent;
    border-left: 0px solid transparent;
    border-right: 10px solid transparent;
    position: absolute;
    top: -20px;
    left: 0;
}

.categorycta .col.mid:after {
    content: '';
    line-height: 0;
    font-size: 0;
    width: 0;
    height: 0;
    border-top: 20px solid transparent;
    border-bottom: 216px solid #fff;
    border-left: 10px solid transparent;
    border-right: 0 solid #fff;
    position: absolute;
    top: -20px;
    right: 0;
}

.categorycta .col.right:before {
    content: '';
    line-height: 0;
    font-size: 0;
    width: 0;
    height: 0;
    border-top: 216px solid #fff;
    border-bottom: 20px solid transparent;
    border-left: 0px solid transparent;
    border-right: 10px solid transparent;
    position: absolute;
    top: 0;
    left: 0;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
<div class="bandtop"></div>
<div class="categorycta">
    <div class="col left" style="background-image: url('http://lorempixel.com/340/220/');">

    </div>
    <div class="col mid" style="background-image: url('http://lorempixel.com/340/222/">
    </div>
    <div class="col right" style="background-image: url('http://lorempixel.com/340/225/">
    </div>
    <div class="clear"></div>
</div>
<div class="bandbot"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

Vin*_*989 3

您需要删除现有的边框,而是可以使用transform: skewX(2deg);并在其周围添加黑色边框,用于margin-top覆盖顶部和底部边框。

例子:

.container {
    width: 1020px;
}

.clear{clear:both; font-size:0px;line-height:0px; display:block;}

.categorycta {
	border-top: 2px solid #000;
	border-bottom: 2px solid #000;
	background-color: #ffffff;
}

.bandtop {
	content: '';
	height: 10px;
	background-color: #ffffff;
	display: block;
	border-top: 2px solid #000;
}

.bandbot {
	content: '';
	height: 10px;
	background-color: #ffffff;
	display: block;
	border-bottom: 2px solid #000;
}

.categorycta .col {
	position: relative;
	height: 216px;
    width: 340px;
	float: left;
	background-size: cover;
}

.categorycta .col.left:after {
	  content: '';
    line-height: 0;
    font-size: 0;
    width: 10px;
    height: 102%;
    /* border-bottom: 20px solid transparent; */
    /* border-top: 216px solid #fff; */
    /* border-left: 10px solid transparent; */
    /* border-right: 0 solid #fff; */
    background: white;
    transform: skewX(2deg);
    border-left: 2px solid black;
    border-right: 2px solid black;
    margin-top: -2px;
    z-index: 1;
    position: absolute;
    top: 0;
    right: -10px;
}

.categorycta .col.mid:before {
	content: '';
    line-height: 0;
    font-size: 0;
    width: 0;
    height: 0;
    border-bottom: 216px solid #fff;
    border-top: 20px solid transparent;
    border-left: 0px solid transparent;
    border-right: 10px solid transparent;
    position: absolute;
    top: -20px;
    left: 0;
}

.categorycta .col.mid:after {
    content: '';
    line-height: 0;
    font-size: 0;
    width: 10px;
    height: 102%;
    position: absolute;
    top: 0;
    right: -9px;
    background: white;
    transform: skewX(-3deg);
    border-left: 2px solid black;
    border-right: 2px solid black;
    margin-top: -2px;
    z-index: 1;
}

.categorycta .col.right:before {
    content: '';
    line-height: 0;
    font-size: 0;
    width: 0;
    height: 0;
    border-top: 216px solid #fff;
    border-bottom: 20px solid transparent;
    border-left: 0px solid transparent;
    border-right: 10px solid transparent;
    position: absolute;
    top: 0;
    left: 0;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
<div class="bandtop"></div>
<div class="categorycta">
    <div class="col left" style="background-image: url('http://lorempixel.com/340/220/');">

    </div>
    <div class="col mid" style="background-image: url('http://lorempixel.com/340/222/">
    </div>
    <div class="col right" style="background-image: url('http://lorempixel.com/340/225/">
    </div>
    <div class="clear"></div>
</div>
<div class="bandbot"></div>
</div>
Run Code Online (Sandbox Code Playgroud)