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 tbody
CSS - Thay đổi
div.datagrid table tbody
thànhdiv.datagrid table
trong CSS - Loại bỏ
background-color
bậttable.data td.priceCell
trong CSS - Loại bỏ
border-collapse
bậtdiv.datagrid table
trong 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-collapse
tính từ thuộc tínhdiv.datagrid table
vàotable.data
chí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)