Hãy xem xét đoạn HTML sau:Borders không được hiển thị trong Firefox với border-collapse trên bàn, position: relative trên tbody, hoặc background-color trên tế bào
<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>
ý rằng ô cuối cùng có đường viền trái và 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), điều này là không. Bạn có thể giải quyết điều này bằng cách:
- Loại bỏ vị trí tương đối trên
div.datagrid table tbody
trong CSS - Thay đổi
div.datagrid table tbody
-div.datagrid table
trong CSS - Loại bỏ các
background-color
trêntable.data td.priceCell
trong CSS - Loại bỏ các
border-collapse
trêndiv.datagrid table
trong CSS
Đây là 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 đang thắc mắc là:
- Đây có phải là lỗi trong Firefox không?
- Đây có phải là lỗi trong IE không?
Và đặc biệt: lý do Firefox sẽ không hiển thị đường viền khi CSS là như thế nào?
Đừng hỏi tôi tại sao, nhưng khi tôi chuyển 'sở hữu cửa collapse' từ' table' div.datagrid vào 'table.data' chính nó trong CSS ở trên, nó hoạt động ổn. Có thể có ai khác ở đây có thể giải thích ... (Tôi đang sử dụng Firefox 5) – compostus
Tôi không có câu trả lời cho câu hỏi của bạn. Tôi nghi ngờ đây là một lỗi, vì vị trí tương đối không nên ảnh hưởng đến biên giới, nhưng tôi đã thực hiện một trường hợp thử nghiệm đơn giản và tất cả 4 trình duyệt hiển thị nó khác nhau! (Fx6, Op 11,50, IE8, Chrome 15) Kiểm tra trường hợp tại đây: http://jsfiddle.net/76Qb7/9/ – Doug