【发布时间】:2012-10-20 09:37:48
【问题描述】:
我有一个<table>,我希望<thead>/<th> 中的垂直边框与其余边框的颜色不同(所有边框都是 1 像素宽,表格顶部没有边框)。这看起来很简单——问题是在 Firefox、Safari 和 Chrome 中,这些垂直边框“渗入”下方的水平边框,看起来不太好。在 Firefox 中,如果<thead> 下方的行包含与<thead> 相同数量的列/单元格,它看起来没问题,但如果我使用<colspan>,我会得到“出血”。
显而易见的解决方案是在垂直<th> 边框上使用“solid”,在下面的水平<td> 边框上使用“double” - 这确实适用于 Safari 和 Chrome。但是,我还没有为 Firefox 想出一个解决方案,我想我已经尝试了一切。我无法删除边框折叠,因为这是其他目的所需要的。 (是的,默认情况下它看起来像我想要的 IE8 和 Opera!)
查看示例:http://jsfiddle.net/7YdCQ/
代码(一个非常简单的例子,带有强烈的颜色)- CSS(所有边框都是实心的):
table { border-collapse: collapse; }
thead th { border-left: 1px solid #F00; border-right: 1px solid #F00; }
tbody th, td { border: 1px solid #0F0; }
HTML(2 个表格,1 个带有 colspan):
<table>
<thead>
<tr>
<th>Thead TD 1</th>
<th>Thead TD 2</th>
<th>Thead TD 3</th>
</tr>
</thead>
<tbody>
<tr>
<th colspan="3">Tbody TH colspan 3</th>
</tr>
<tr>
<td>Tbody TD</td>
<td>Tbody TD</td>
<td>Tbody TD</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th>Thead TD 1</th>
<th>Thead TD 2</th>
<th>Thead TD 3</th>
</tr>
</thead>
<tbody>
<tr>
<td>Tbody TD</td>
<td>Tbody TD</td>
<td>Tbody TD</td>
</tr>
</tbody>
</table>
【问题讨论】:
-
我可能会补充一点,Chrome/Safari 解决方案对我来说效果不佳,因为我想更改悬停时的边框颜色,如果原始边框是双倍的,这是不可能的。相反,我尝试了其他变体,如插图等,但它们在不同的浏览器中看起来不同。似乎唯一可能的解决方案是使用 TH 背景图像作为边框,但问题是在 Firefox 和 IE 中必须放置在 TH 的右侧,但在 Chrome/Safari/Opera 中位于左侧,与下面的 TD 的实际边界对齐。不过我不想使用浏览器黑客。
标签: html css firefox html-table border