2010-09-24 33 views
8

Tôi có bố cục hiển thị hoàn toàn tốt trong trình duyệt dựa trên Webkit nhưng trong trình khám phá internet và firefox, căn chỉnh theo chiều dọc bị tắt. Ví dụ đơn giản nhất của mã này là:tràn: bị ẩn; gây ra vấn đề liên kết trong firefox

<html> 
 
    <head> 
 
    <style> 
 
     body { 
 
     padding: 20px; 
 
     background-color: #c0c0c0 ; 
 
     } 
 

 
     #wrapper { 
 
     border: 4px solid #9cf ; 
 
     } 
 

 
     #wrapper > div { 
 
     display: inline-block ; 
 
     height: 30px ; 
 
     line-height: 30px ; 
 
     } 
 

 
     #content1 { 
 
     width: 100px ; 
 
     background-color: yellow ; 
 
     } 
 

 
     #content2 { 
 
     width: 325px ; 
 
     overflow: hidden ; 
 
     white-space: nowrap ; 
 
     background-color: blue ; 
 
     } 
 

 
     #content3 { 
 
     width: 400px ; 
 
     background-color: red ; 
 
     } 
 
    </style> 
 
    </head> 
 
    <body> 
 
    <div id="wrapper"> 
 
     <div id="content1">Content 1</div> 
 
     <div id="content2">A rather long string which will become truncated and cause the vertical alignment issue</div> 
 
     <div id="content3">Another piece of content</div> 
 
    </div> 
 
    </body> 
 
</html>

Bạn sẽ thấy rằng div # content2 được đẩy lên tương đối so với # content1 và # content3 divs. Tôi có một lý do tương đối mạnh để sử dụng các khối nội tuyến trên phao nổi trong tình huống này, tuy nhiên nếu "sửa chữa" duy nhất là di chuyển đến phao nổi, tôi sẽ phải tiếp tục với nó, tuy nhiên tôi muốn tránh việc đó nếu có thể là, hiện tại, thời gian là ngắn cho khởi động thử nghiệm thí điểm của chúng tôi, về lâu dài, bố cục có thể được di chuyển đến phao nổi.

Hơn nữa, tôi đã cố gắng để gây rối với lợi nhuận và paddings để không thành công. Trong mớ hỗn độn đó, tôi đã thiết lập rằng nó là sự hiện diện của tràn: ẩn trong # content2 gây ra sự biến dạng line-break-esque này.

Bất kỳ trợ giúp nào được đánh giá cao.

+0

Bạn đang sử dụng loại tài liệu? –

+0

yup, không có trong ví dụ này. Doc loại os xhtml nghiêm ngặt. – Mike

Trả lời

19

Đối với inline-block Tôi thường chỉ định vertical-align:top để giảm bớt các vấn đề căn chỉnh theo chiều dọc. Và lưu ý rằng sẽ có khoảng trống ngang giữa các divs anh em có khối nội tuyến, mà chỉ có thể được cố định bằng cách giết chết khoảng trống chữ trong HTML.

Và tôi hy vọng bạn đang sử dụng loại tài liệu.

Hy vọng điều này sẽ hữu ích, nếu không hãy thiết lập jsfiddle để tôi có thể nhìn thấy điều này một cách trực quan.

+0

hey, cảm ơn, tôi sẽ cung cấp cho một shot này. RE không gian màu trắng, tôi tạo ra phía máy chủ html với các mẫu đóng google và loại bỏ tất cả khoảng trắng. – Mike

+0

làm việc ngay lập tức =) – Mike

+0

Xin lỗi vì đã khai thác nó, nhưng tôi đã tìm thấy sau 5 năm hành vi tương tự trong Firefox và Chrome (https://jsfiddle.net/jhngc3uf/). Cảm ơn cho workaround, nhưng tôi muốn hiểu tại sao mà bù đắp xảy ra với tràn ẩn? Đó là hành vi bình thường hay một lỗi? –

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