Đây là mô tả đầy đủ hơn về một số nhận xét tôi đã tạo trên another question, hy vọng một chút rõ ràng hơn. Lưu ý rằng Opera có hành vi tương tự như Firefox.
Trong sơ đồ trên, tổng diện tích ô là hộp tối và văn bản My Text
là nội dung của td
và đó là định nghĩa Ô di động (C).
Bây giờ, CSS 2.1 spec nói:
Chiều cao của hộp một 'bảng hàng' yếu tố được tính một lần user agent có tất cả các tế bào trong hàng có sẵn: đó là tối đa 'chiều cao' các hàng của tính toán, chiều cao tính toán của mỗi ô trong hàng và chiều cao tối thiểu (MIN) theo yêu cầu của các ô. Giá trị 'chiều cao' 'tự động' cho 'hàng trong bảng' có nghĩa là chiều cao hàng được sử dụng cho bố cục là MIN. MIN phụ thuộc vào chiều cao hộp di động và căn chỉnh hộp di động (nhiều như tính toán chiều cao hộp đường). ...
Trong CSS 2.1, chiều cao của ô là chiều cao tối thiểu được yêu cầu bởi nội dung. Thuộc tính 'chiều cao' của ô bảng có thể ảnh hưởng đến chiều cao của hàng (xem ở trên), nhưng nó không làm tăng chiều cao của hộp thoại.
Vì vậy, td { height:100px; }
ảnh hưởng đến chiều cao hàng (R) (nó cao ít nhất 100px) nhưng không ảnh hưởng đến Ô di động (C).
Mặt khác, td { padding:20px; }
áp dụng cho Ô di động (C), vì vậy nếu chiều cao của (C) + Đệm trên + Đệm dưới nhỏ hơn 100px, chiều cao hàng không bị ảnh hưởng và vẫn là 100px.
Nếu (C) + Đệm trên cùng + Đệm đáy lớn hơn 100px, chiều cao hàng sẽ mở rộng để phù hợp với chiều cao đầy đủ của (C) + Đệm trên cùng + Đệm đáy.
Sau đó, td { background-color:blue }
áp dụng cho chiều cao toàn bộ hàng (R) và chiều rộng ô.
Bạn có thể thấy điều này trong hành động ở http://jsfiddle.net/Ez7xz/
Yếu tố khó hiểu cuối cùng là giá trị của chiều cao tính toán của td
trong Firebug. Những gì dường như đang xảy ra ở đây là nó giả định rằng chiều cao là kết quả của kích thước hộp content-box
, và báo cáo giá trị của R ít đệm trên và dưới. Trong khi điều này có vẻ kỳ lạ, nó không rõ ràng những gì giá trị khác nó hợp lý có thể báo cáo.
Trong Firebug, nó tính toán phần đệm, nhưng chiều cao được tính là '60px'. –
Có thể một số vấn đề với kiểu mặc định của Firefox. Đặt lại kiểu cũng sẽ không hoạt động ... (http://meyerweb.com/eric/tools/css/reset/) – rekire
Ý của bạn là đặt lại CSS? Cùng một kết quả ... http://jsfiddle.net/8wDde/3/ – ptriek