Rozważ następujący kod 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>
Zwróć uwagę, że ostatnia komórka ma lewe i prawe obramowanie w stylu wbudowanym. Ty (a przynajmniej ja) spodziewałbym się, że to będzie widoczne. W IE tak jest. Ale w Firefoksie (6) tak nie jest. Możesz rozwiązać ten problem poprzez:
- Usuwanie pozycji względem
div.datagrid table tbody
w CSS - Zmiana
div.datagrid table tbody
nadiv.datagrid table
w CSS - Usuwanie
background-color
ontable.data td.priceCell
w CSS - Usuwanie
border-collapse
ondiv.datagrid table
w CSS
To jest uproszczona wersja naszego kodu; rozwiązaliśmy go również (wybierając opcję 2). Ale zastanawiam się nad tym:
- Czy to błąd w Firefoksie?
- Czy to błąd w IE?
A w szczególności: z jakiego powodu Firefox nie pokazywał granic, gdy CSS jest taki, jaki jest?
border-collapse
właściwość z pliku CSSdiv.datagrid table
dotable.data
samego siebie w powyższym CSS, wszystko działało dobrze. Może jest tu ktoś inny, kto może wyjaśnić ... (korzystam z Firefoksa 5)