::after
您可以使用 div 的伪元素使顶部边框成为完美的矩形,而其他边框仍然按照您想要的方式设置。
将顶部边框放在 div 本身上,将其他三个边框放在伪元素上。
例如:
.border {
width: 200px; height: 200px; border-top:5px solid #894b9d;
padding: 0 1px 1px 1px;
position:relative;
}
.border::after {
display:block; content:'';
position:absolute; top:0; left:0;
width:200px; height:200px;
border-color:#dad9d9; border-style:solid; border-width:0 1px 1px 1px;
}
请参阅更新的小提琴。
编辑:
或者如果您不想依赖给定的宽度和高度,如下所示:
.border {
display:inline-block;
position:relative;
padding:.5em;
border-top:5px solid #894b9d;
}
.border::after {
display:block; content:'';
position:absolute; top:0; left:0;
width:100%; height:100%;
-webkit-box-sizing:border-box;
-moz-box-sizing:border-box;
box-sizing:border-box;
border-color:#dad9d9; border-style:solid; border-width:0 1px 1px 1px;
}
我把它做成了一个内联块,以表明它适用于动态内容大小,但你可以使用各种宽度。
更多更新的小提琴。