Hãy xem xét HTML sau:
<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>
Lưu ý rằng ô cuối cùng có đường viền bên trái và bên phải theo kiểu nội tuyến của nó. Bạn (hoặc ít nhất là tôi) sẽ mong đợi điều này được hiển thị. Trong IE, đây là trường hợp. Nhưng trong Firefox (6) thì không. Bạn có thể giải quyết vấn đề này bằng cách:
- Xóa vị trí tương đối trên
div.datagrid table tbodyCSS - Thay đổi
div.datagrid table tbodythànhdiv.datagrid tabletrong CSS - Loại bỏ
background-colorbậttable.data td.priceCelltrong CSS - Loại bỏ
border-collapsebậtdiv.datagrid tabletrong CSS
Đây là một phiên bản đơn giản của mã của chúng tôi; chúng tôi cũng đã giải quyết nó (bằng cách chọn tùy chọn 2). Nhưng điều tôi băn khoăn là:
- Đây có phải là một lỗi trong Firefox?
- Đây có phải là một lỗi trong IE?
Và đặc biệt: lý do gì khiến Firefox không hiển thị đường viền khi CSS như vậy?
border-collapsetính từ thuộc tínhdiv.datagrid tablevàotable.datachính nó trong CSS ở trên, nó hoạt động ổn. Có lẽ có ai đó ở đây có thể giải thích ... (tôi đang sử dụng Firefox 5)