Consider the following 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>
Notice that the last cell has a left and a right border in its inline style. You (or at least I) would expect this to be visible. In IE, this is the case. But in Firefox (6), this is not. You can solve this by:
div.datagrid table tbody
in the CSS div.datagrid table tbody
to div.datagrid table
in the CSS background-color
on table.data td.priceCell
in the CSS border-collapse
on div.datagrid table
in the CSS This is a simplified version of our code; we also solved it (by choosing option 2). But what I'm wondering about is:
And especially: what is the reason Firefox wouldn't show the borders when the CSS is as it is?
This looks like a Firefox bug to me. The backgrounds are painting over the borders; you can see it if you use a translucent background color.