2011-01-07 10 views
9

Zastanawiam się dlaczego ze znacznikami jakHTML/CSS Whitespace łamanie

http://jsfiddle.net/rkEpx/

uzyskać

Jak widać, pozycje 1 i ostatni menu zostały jego związek uszkodzony na 3 linie, nawet jeśli jest wystarczająco dużo miejsca, by się rozwinąć. Czy to możliwe, żeby linia nie pękła, chyba że naprawdę nie ma miejsca? Jeśli to możliwe bez ustawiania stałej szerokości lub używania spacji nierozdzielających?

+0

Działa dobrze w Operze 11 i IE8. Może to być błąd przeglądarki Firefox. – DanMan

Odpowiedz

3

  podmiot HTML lub white-space: nowrap; CSS. Ale nie pęknie, nawet jeśli naprawdę nie ma miejsca.

Można spróbować użyć display: inline-block; zamiast float: left; dla Twojego li, img i/lub p.

http://jsfiddle.net/2Mv2E/

+0

display: inline-block; nie działa IE7 lub IE6. Będziesz musiał użyć * li {display: inline; } dla tych przeglądarek do pracy. – Bertine

+0

'white-space: nowrap' nie jest dobry, gdy dodam' max-width' tekst nie jest zawijany, powodując uszkodzenie layoutu http://jsfiddle.net/2Mv2E/1/ –

1

spróbuj dodać:

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

Nie mam pojęcia, dlaczego zachowuje się tak, ale wydaje się, można go naprawić przez pływających p „s, a także:

p { 
    float: left; 
} 

zależności od wymagań przeglądarki, można również zdecydować się na tylko pływak p zaraz po obrazka:

img + p { 
    float: left; 
} 
Powiązane problemy