Betrachten Sie den folgenden HTML-Code:
<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>
Beachten Sie, dass die letzte Zelle im Inline-Stil einen linken und einen rechten Rand hat. Sie (oder zumindest ich) würden erwarten, dass dies sichtbar ist. Im IE ist dies der Fall. In Firefox (6) ist dies jedoch nicht der Fall. Sie können dies lösen durch:
- Position relativ
div.datagrid table tbodyim CSS entfernen - Wechseln
div.datagrid table tbodyzudiv.datagrid tableim CSS - Entfernen des
background-colorOntable.data td.priceCellim CSS - Entfernen des
border-collapseOndiv.datagrid tableim CSS
Dies ist eine vereinfachte Version unseres Codes. Wir haben es auch gelöst (durch Auswahl von Option 2). Aber ich wundere mich über:
- Ist das ein Fehler in Firefox?
- Ist das ein Fehler im IE?
Und vor allem: Was ist der Grund, warum Firefox die Grenzen nicht anzeigt, wenn das CSS so ist, wie es ist?
border-collapseEigenschaft im obigen CSS von derdiv.datagrid tablein dietable.dataselbst verschoben habe , hat es in Ordnung funktioniert. Vielleicht gibt es hier noch jemanden, der erklären kann ... (Ich bin auf Firefox 5)