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 tbody
im CSS entfernen - Wechseln
div.datagrid table tbody
zudiv.datagrid table
im CSS - Entfernen des
background-color
Ontable.data td.priceCell
im CSS - Entfernen des
border-collapse
Ondiv.datagrid table
im 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-collapse
Eigenschaft im obigen CSS von derdiv.datagrid table
in dietable.data
selbst verschoben habe , hat es in Ordnung funktioniert. Vielleicht gibt es hier noch jemanden, der erklären kann ... (Ich bin auf Firefox 5)