折叠相邻元素的垂直边框?

时间:2015-02-11 09:45:53

标签: html css

如何在不删除border-top / border-bottom的情况下折叠两个相邻元素的垂直边框?

例如:

<style type="text/css">
.bordered {
    border:1px solid #000000;
}
</style>
...
<body>
    <div class="bordered">bordered_1</div>
    <div class="bordered">bordered_2</div>
</body>

我找到的一种方法是添加

margin-top:-1px;
margin-bottom:-1px;

到.bordered。但是这样,如果我改变边框厚度,我也必须改变margin-top和margin-bottom。 另一种方法是设置:

body {
    display:table;
    border-collapse:collapse;
}
.bordered {
    display:table-row;
    border:1px solid #000000;
}

它似乎具有良好的浏览器兼容性(在IE 9,FF,Chrome上测试过),但它是一种hacky类型的代码。 有更优雅的方式吗?

1 个答案:

答案 0 :(得分:1)

对于示例的有限范围,您可以简单地指定具有类bordered的元素不应该具有border-top,如果它紧接在具有相同类的元素之前,则使用{ {3}},+

.bordered {
    border:1px solid #000000;
}
.bordered + .bordered {
    border-top:0 none;
}
<div class="bordered">bordered_1</div>
<div class="bordered">bordered_2</div>

相关问题