Рассмотрим следующий 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 - Переход
div.datagrid table tbody
наdiv.datagrid table
в CSS - Удаление
background-color
наtable.data td.priceCell
в CSS - Удаление
border-collapse
наdiv.datagrid table
в CSS
Это упрощенная версия нашего кода; мы тоже ее решили (выбрав вариант 2). Но вот что меня интересует:
- Это ошибка Firefox?
- Это ошибка IE?
И особенно: почему Firefox не показывает границы, когда CSS такой, какой он есть?
border-collapse
свойство изdiv.datagrid table
вtable.data
само в CSS выше, все сработало нормально. Может быть, здесь есть кто-то еще, кто может объяснить ... (я использую Firefox 5)