2012-11-02 37 views
7

Tôi đang sử dụng display:table; trên một yếu tố div. Trên tất cả các trình duyệt khác mà tôi đã thử nghiệm, không có vấn đề gì. Tuy nhiên, trên Chrome 22 (mới nhất) và Canary, các div nhận được khoảng cách 1px ở cả hai bên trái và bên phải.Hiển thị CSS: bảng; vấn đề khoảng cách trên Chrome

Bất kỳ ý tưởng nào về sự cố xảy ra?

EDIT:
margin, border, padding đều 0.

Ngoài ra, bất kỳ thuộc tính bảng được loại bỏ:

border-spacing:0; 
border-collapse:collapse; 
table-layout:fixed; 
+2

Bất kỳ fiddles? Bạn có đặt lại tất cả các phần tử bằng cách sử dụng reset.css hay bất kỳ yếu tố nào trong số đó. Nếu không, tôi khuyên bạn nên sử dụng một. – srijan

+0

Bạn có nghĩa là đệm hoặc lề 1px không? Như trên, tôi khuyên bạn nên thử một tập tin reset.css. –

+0

Thing là, nó không phải.Đệm là 0, lề là 0, đường viền là 0. Sau đó, khoảng cách đường viền: 0; border-collapse: collapse; table-layout: fixed ;. – Francisc

Trả lời

8

Tôi đã gặp vấn đề tương tự. Nó được gây ra bởi Micro clearfix hack. Đã xóa kiểu .clearfix đã giải quyết sự cố.

+0

Điều đó rất tinh tế, cảm ơn bạn, Pinco. – Francisc

0

tôi sẽ thiết lập lại margin và padding trên tất cả các trình duyệt.

*{margin:0; padding:0;} 

Lưu ý bạn cũng có thể tải xuống tệp css đặt lại nếu bạn muốn.

normalize.css hoặc reset.css

+0

Tôi đã chỉnh sửa câu trả lời của mình. Nó không phải là lề hoặc paddings. Đó là một trình duyệt quirk tôi muốn nói. – Francisc

1

tôi cũng sẽ nhìn vào khoảng trắng như một người phạm tội có thể và thử nghiệm với font-size: 0.

+0

Đó là một ý tưởng hay. Tôi sẽ cho rằng một shot vào tuần tới. Cảm ơn bạn. – Francisc

0

Câu trả lời từ câu hỏi này giải quyết vấn đề của tôi: CSS Table Cell In Chrome

Họ khuyên bạn nên thêm table-layout: fixed đến các yếu tố mà bạn đã áp dụng display: table.

Nếu đánh dấu của bạn không bị hack .clearfix, như trường hợp của tôi, điều này có thể giúp bạn!

0

tôi đã nhận thấy vấn đề này trở lại vào năm 2015 - nó chỉ ảnh hưởng đến google chrome và cách duy nhất để sửa chữa nó là để di chuyển màn hình của bạn: bảng để một container đứa trẻ, vì vậy nếu bạn có:

<div style="width:50%; height:300px; display:table"> 
    <div style="display:table-cell; vertical-align: middle;"> 
      <p>Your centred content here</p> 
    </div> 
</div> 

Thay đổi nó thành sau đây để thêm một div khác:

<div style="width:50%;"> 
    <div style="display:table; height:300px;"> 
      <div style="display:table-cell; vertical-align: middle;"> 
       <p>Your centred content here</p> 
      </div> 
    </div> 
</div> 

Có vẻ như trong google chrome có xung đột với chiều rộng và hiển thị: bảng khi nó được áp dụng cho cùng một thẻ.

Mở liên kết sau trong cả chrome và firefox và bạn sẽ thấy rằng các đường viền bên phải sắp xếp trong firefox nhưng không ở trong chrome vì nó thêm khoảng cách thêm 1px.

câu chuyện dài ngắn, sửa chữa của tôi làm việc trong chrome :)

https://jsfiddle.net/2u1t8ffj/

Firefox on the left - fine, Chrome on the right - 1px gap

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