我认为您正在寻找的那种解决方案根本不可能。当您使用表格时,浏览器可以理解td
和th
元素都属于同一个tr
,并提出简单的规则来确定它们作为一个组的外观。
另一方面,Divs 是高度变化的(理所当然的),并且没有办法使用纯粹的 html 和 css 来创建这种关联。没有办法以语义方式说类似的东西the children of this div are going to be on the same row, so they should all share a border
。
解决方法很简单:
http://jsfiddle.net/8uqae/
只需在最后为一个 div 创建一个特殊的类,然后在右侧给其余的 div 一个边框。
HTML:
<div>
<div class="left-end fl"></div>
<div class="middle fl"></div>
<div class="middle fl"></div>
<div class="middle fl"></div>
<div class="middle fl"></div>
<div class="middle fl"></div>
<div class="clr"></div>
</div>
CSS:
.fl {
float: left;
}
.clr {
clear: both;
}
.left-end, .middle {
width: 30px;
height: 20px;
margin: 0;
padding: 0;
border-top: solid 1px black;
border-right: solid 1px black;
border-bottom: solid 1px black;
}
.left-end {
border-left: solid 1px black;
}
正如srini指出的那样,有一些框架可以帮助实现这一点,值得研究。在各种尺寸的屏幕上跨浏览器响应式 div 布局可能很棘手,因此考虑使用Twitter Bootstrap等框架是值得考虑的。