考虑以下HTML:
<html>
<head>
<style>
TABLE.data TD.priceCell
{
background-color: #EEE;
text-align: center;
color: #000;
}
div.datagrid table
{
border-collapse: collapse;
}
div.datagrid table tbody
{
position: relative;
}
</style>
</head>
<body>
<div id="contents" class="datagrid">
<table class="data" id="tableHeader">
<thead>
<tr class="fixed-row">
<th>Product</th>
<th class="HeaderBlueWeekDay">Price</th>
<th class="HeaderBlueWeekDay">Discount</th>
</tr>
</thead>
<tbody>
<tr style="font-style: italic;">
<td>Keyboard</td>
<td class="priceCell">20</td>
<td style="border-right: #3D84FF 1px solid; border-left: #3D84FF 1px solid;" class="priceCell">2</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
请注意,最后一个单元格的内联样式具有左右边框。您(或至少是我)希望此可见。在IE中,就是这种情况。但是在Firefox(6)中,事实并非如此。您可以通过以下方法解决此问题:
div.datagrid table tbody
在CSS中移除相对位置- 在CSS中更改
div.datagrid table tbody
为div.datagrid table
- 在CSS中删除
background-color
ontable.data td.priceCell
- 在CSS中删除
border-collapse
ondiv.datagrid table
这是我们代码的简化版本;我们也解决了它(选择选项2)。但是我想知道的是:
- 这是Firefox中的错误吗?
- 这是IE中的错误吗?
特别是:当CSS保持原样时,Firefox不显示边框的原因是什么?
border-collapse
属性从中div.datagrid table
移到它table.data
本身时,它工作正常。也许这里有人可以解释...(我在Firefox 5上)