2012-08-29 26 views
5


Hello! Oto problem: mam kilka (do 5) elementów div o różnych wysokościach. Wewnątrz tych div są portlety, które mogą rosnąć na wysokość. Oto uproszczony przykład:
HTML:
Pływające elementy div o różnej wysokości są zablokowane podczas owijania

<div class="container"> 
    <div class="clz">1111111111<br/>1111111111</div> 
    <div class="clz">2222222222<br/>2222222222<br/>2222222222</div> 
    <div class="clz">3333333333<br/>3333333333</div> 
    <div class="clz">4444444444<br/>4444444444</div> 
</div>​ 

Oto CSS dla niego:

.clz{ 
    float: left; 
}​ 

Oto jsfiddle, gdzie można je zobaczyć: http://jsfiddle.net/eGawU/9/
Kiedy zmniejszyć okno przeglądarce szerokość, divy są zawijane, co jest bardzo dobre. Złe jest to, że 4444444444 tkwi w 2222222 - nie spadają na początku strony:

1111111 2222222 333333 
1111111 2222222 333333 
     2222222 444444 
       444444 

pożądane zachowanie jest, że gdy pojawia się okład 4444444 umieszcza się na początku strony w zupełnie innej linii :

1111111 2222222 333333 
1111111 2222222 333333 
     2222222 
4444444 
4444444 

Dzięki za uwagę.

Odpowiedz

8

Możesz użyć do tego celu wyświetlania : tabeli w tabeli. Napisz tak:

.clz{ 
    display:inline-table; 
} 

Sprawdź to http://jsfiddle.net/eGawU/13/

To aż IE8 & powyżej

+0

Super! Dziękuję Ci bardzo! Z dodatkowym 'vertical-align: top;' wszystko jest dokładnie tak, jak chciałem. – popfalushi

+0

Jeśli to jest pomocne, to zaakceptuj to i dziękuj za podziękowanie :) – sandeep

+0

W zależności od pożądanego zachowania i potrzebnej przeglądarki, jest to prawdopodobnie najlepsze rozwiązanie. –

0

Usuń pływaka. demo http://jsfiddle.net/eGawU/17/

+0

To demo nie dotyczy po prostu usunięcia float? Usunięcie floatu z jego oryginalnego kodu da po prostu 100-procentową szerokość bloków. – Jimbo

0

Można spróbować owijania pierwsze trzy DIV w innym clz div tak:

<div class="container"> 
    <div class="clz"> 
     <div class="clz">1111111111<br/>1111111111</div> 
     <div class="clz">2222222222<br/>2222222222<br/>2222222222</div> 
     <div class="clz">3333333333<br/>3333333333</div> 
    </div> 
    <div class="clz">4444444444<br/>4444444444</div> 
</div>​ 

uczyni div 4 wiem dokładnie, co chcesz, ale być może trzeba będzie gniazdo więcej DIV jeśli dodać więcej kolumn.

+0

Naprawdę nie jest to odpowiedź na moje pytanie, ale, gość, mogę być źle zrozumiany w ten sposób. 4444444 lub 333333 - to nie ma znaczenia dla mnie.Pytanie dotyczyło owijania bez problemów z różnych wysokości, bez pakowania 4444444. – popfalushi

Powiązane problemy