table的边线

May 7, 2011

当table应用样式“border-collapse: collapse;”时,如果是表格的外边线和单元格的边线同色时,一般不会出现什么问题;可是当它们不同时,或是需要单元格的左右边线和底部边线不同时,就会出现些许尴尬的事。

表现为:以单元格的边线优先。

如何才能做到表格的边线和单元格甚至表头(th)的边线不同呢?

以下是我的做法:

设置表格的边线
.table{border:1px solid #000;width:100%;}

设置表头(th)的边线--只有左边线和下边线

.table th{border:1px solid #f60;border-width:0 0 1px 1px;}

设置表格的边线--是伪类,把第一个表头单元格的左边丝去掉(显示出表格的边线)

.table tr th:first-child{border-left:none;}

设置单元格的边线--这里是只显示上边线和左边线,不然表格的底部线会显示不出来

.table td{padding:3px;border:1px solid #6f0;border-width: 1px 0 0 1px;}

设置单元格的边线--是伪类,把第一个单元格的左边丝去掉(显示出表格的边线)

.table tr td:first-child{border-left:none;}

通过这么设置后,基本就完成了。不过因为应用了伪类,所以IE6不支持。还有一个小问题,就是在IE7下,表头(TH)的下边线无法盖住单元格(TD)的上边线。这个设计时需要留意。