2011-01-25 41 views

Trả lời

17

Các thông số kỹ thuật CSS trước đó (mà IE6 sau - và tôi sử dụng từ "sau" lỏng lẻo) không rõ ràng về những gì đệm được xác định trên một bảng nên thậm chí có nghĩa là. IE6, tự nhiên, đã quyết định giải thích điều này khác với mọi trình duyệt khác, bằng cách bỏ qua phần đệm. Các trình duyệt khác đã quyết định hiển thị nó bằng cách thêm khoảng cách giữa đường viền bảng và ô ngoài cùng, mà không ảnh hưởng đến khoảng cách giữa các ô hoặc giữa các ô nội bộ. Vào thời điểm IE7 ra mắt, các thông số kỹ thuật đã dọn dẹp để hoạt động giống như các trình duyệt khác, nhưng IE6 vẫn có vấn đề, nơi nó đơn giản bỏ qua phần đệm.

Giải pháp tốt nhất là tránh đặt đệm trên bàn của bạn, nhưng thay vì bao quanh nó bằng một div và đặt đệm vào đó.

<div style="padding: 5px;"> 
    <table...> 
    </table> 
</div> 

Tất nhiên, nếu những gì bạn muốn là khoảng cách giữa các tế bào hoặc đệm tế bào (như trái ngược với chỉ đệm trên bàn), sau đó bạn nên sử dụng cellspacing hoặc cellpadding thuộc tính (thậm chí nếu bạn không muốn những, bạn ít nhất cần cellspacing="0" để tránh một vấn đề riêng biệt khác với hiển thị bảng IE6).

Ngoài ra, các kiểu nội tuyến ở đây là dành cho mục đích demo; sử dụng các lớp css thường được coi là thực hành tốt hơn.

+2

Cảm ơn bạn rất nhiều, câu trả lời của bạn rất hoàn chỉnh. Tôi đã phải sử dụng div với padding và nó làm việc tốt. Ngoài ra, nhờ lời khuyên của việc sử dụng cellspacing = "0" cho IE6, tôi không biết điều đó. Có nhiều điều kỳ quặc giữa các trình duyệt khác nhau mà nếu tôi biết sẽ giúp tôi tiết kiệm rất nhiều thời gian. Hy vọng một ngày để tìm hiểu tất cả. Cảm ơn một lần nữa. – fabio

0

Bạn đã thử sử dụng <table cellpadding="5">? IE có vấn đề với một số kiểu dáng css. Ngoài ra cú pháp của bạn là sai bạn quên một dấu chấm phẩy.

+3

Thật ra, dấu chấm phẩy không được yêu cầu trong quy tắc cuối cùng trong khối css, do đó không có lỗi cú pháp ở đây. Điều đó đang được nói, nó được coi là hình thức tốt để thêm một dấu chấm phẩy cuối cùng anyway. –

+0

Điểm tốt, quên đi quy tắc đó. Đoán nó chỉ là thói quen cũ và được hậu môn về cú pháp của tôi: P – MidnightAnarchst

0

Tôi muốn mạo hiểm để đoán có điều gì đó sai trong mã của bạn.

Padding hoạt động tốt trong IE:

http://jsbin.com/ewuho4/

+1

Bản xem trước này dành cho các phiên bản sau của IE; IE6 * đã * có vấn đề về đệm. –

+0

Touche; Tôi đã quên về sự ghê tởm đó. – jvenema

+0

Xin chào các bạn, IE của tôi thực sự là phiên bản 8 !! Tôi nghĩ rằng đó là một phiên bản đặc biệt cho một ngôn ngữ khác, tôi không biết chắc chắn. – fabio

0

Nếu bạn muốn dán các ô sau đó sử dụng cellpading attribure (cellpadding = "X") nếu bạn muốn padd một bảng, thì đó là awkward xem xét cấu trúc của nó, tôi khuyên bạn nên đặt một lề nếu bạn muốn một số không gian giữa nó và phần còn lại của công cụ. Padding không hoạt động trên IE mặc dù tôi không phải là fan của IE Tôi không đổ lỗi cho điều đó

+0

Tôi nghĩ rằng một bout sử dụng margin nhưng suy nghĩ kể từ khi padding đã không làm việc mà một trong những sẽ không làm việc là tốt. Bây giờ tôi đang sử dụng một div với padding anyway. Cảm ơn bạn – fabio

Các vấn đề liên quan