2011-01-07 50 views
9

Tôi tự hỏi tại sao với các đánh dấu nhưHTML/CSS Khoảng trắng phá vỡ

http://jsfiddle.net/rkEpx/

tôi nhận được

Như bạn có thể thấy, các mục 1 và đơn cuối cùng đã liên kết của nó bị phá vỡ thành 3 dòng thậm chí tho có đủ không gian để mở rộng. Có thể có dòng không phá vỡ trừ khi theres thực sự không có không gian? Nếu có thể mà không đặt chiều rộng cố định hoặc sử dụng không gian không phá vỡ?

+0

Hoạt động tốt trong Opera 11 và IE8. Có thể là một lỗi Firefox. – DanMan

Trả lời

3

  Thực thể HTML hoặc white-space: nowrap; CSS. Nhưng nó sẽ không phá vỡ ngay cả khi thực sự không có không gian.

Bạn có thể thử sử dụng display: inline-block; thay vì float: left; cho li, img và/hoặc p của mình.

http://jsfiddle.net/2Mv2E/

+0

display: inline-block; không hoạt động IE7 hoặc IE6. Bạn sẽ phải sử dụng * li {display: inline; } để các trình duyệt đó hoạt động. – Bertine

+0

'trắng-không gian: nowrap' là không tốt với khi tôi thêm' max-width' văn bản không bọc gây ra bố trí để phá vỡ http://jsfiddle.net/2Mv2E/1/ –

1

Hãy thử thêm:

li { 
    padding: 0; 
    margin: 0 3px 0 0; 
    float: left; 
    max-width: 120px; 
white-space: nowrap; 
} 
1

Tôi không có ý tưởng tại sao nó là hành xử như thế, nhưng có vẻ như bạn có thể sửa chữa nó bằng cách thả nổi 's cũng p:

p { 
    float: left; 
} 

Tùy thuộc vào yêu cầu trình duyệt của bạn, bạn cũng có thể chọn chỉ cần phao p ngay sau hình ảnh:

img + p { 
    float: left; 
}