如果页面上存在具有多种边框颜色的元素,则这些颜色相交的角默认会创建一个斜角。对于边框角样式,这似乎是一个奇怪的选择。相反,我更喜欢其中一个边界“压倒”另一个边界,以便显示一条直线。
为了说明这种效果,请考虑以下内容:
请参阅我在此处创建的示例 jsFiddle 示例。
前两项显示默认的斜面行为。底部两个显示所需的预期行为,在这种情况下,border-top “压倒”或“覆盖”border-left 和border-right 的角。
顶部案例的标记:
<div class="container">
<div class="border">Item one</div>
<div class="border">Item two</div>
</div>
和CSS:
.container {
margin: 5px;
width: 150px;
background: yellow;
}
.border {
padding: 5px;
border: 15px solid red;
border-top: 15px solid teal;
}
底壳的标记:
<div class="container">
<div class="border-top"></div>
<div class="border-reg">Item one</div>
<div class="border-top"></div>
<div class="border-reg">Item two</div>
</div>
和CSS:
.border-top {
border-top: 15px solid teal;
}
.border-reg {
border: 15px solid red;
border-top: 0;
padding: 5px;
}
尽管我设计的第二种方法确实产生了我想要的效果,但对于我本以为具有默认状态的东西来说,这似乎是不必要的乏味。例如,如果我希望左边框覆盖其他边框,我将不得不处理一些float: left
内联元素的疯狂。
问题(最后)
有没有更简单的方法可以删除所有浏览器上观察到的默认斜角行为?
尽管上面详述的情况很容易让边框顶部或边框底部覆盖角落,但这并不是一件容易的事,例如,如果我需要边框左和边框右来覆盖边框 -顶部和边框底部。