2015-12-16 7 views
6

Mam problem, w którym bloki układają się w stos o 2, a kolejne 2 bloki zaczynają się na końcu pierwszych 2 bloków. Jak pokazano w this JSFiddle demo.Jak zignorować wstawiane bloki marginesów z różnymi wysokościami?

HTML:

<div class="container"> 
    <div class="inline"> 
    A div with less content than that one > 
    </div> 
    <div class="inline"> 
    A div with more content than the one on the left. Now Inline 3 goes down to where this div ends. I want to move it up however, so it's right under the div that's above Inline 3. 
    </div> 
    <div class="inline"> 
    Inline 3 
    </div> 
    <div class="inline"> 
    Inline 4 
    </div> 
</div> 

CSS:

.container { 
    width:600px; 
    background-color:rgb(40,40,40); 
} 

.inline { 
    width:calc(50% - 22px); 
    display:inline-block; 
    vertical-align:top; 
    color:white; 
    background-color:#e74c3c; 
    text-align:center; 
    margin:5px 10px; 
} 

wyjściowa:

Output

Uwaga:To nie zajmuje białej przestrzeni utworzonej przez prawy górny div.

Oczekiwany/chciał wyjście:

Expected output

Uwaga:To czyni stosowanie spacji.

Mam świadomość, że jest to możliwe z 2 kolumnami, ale nie chcę używać 2 kolumn. Ponieważ muszę mieć możliwość usunięcia niektórych elementów div bez nierównej zawartości w kolumnach.

Odpowiedz

0

można spróbować użyć column-count własność,

mieć świadomość, że produkty zostaną uporządkowane w kolejności malejącej kolumna.

fiddle

+0

Pozycjonowanie jest w porządku, ale nie chcę elementy należy ponownie uporządkowane. Będzie to mylące, ponieważ zawartość jest tworzona dynamicznie, na przykład: https://jsfiddle.net/rezf2mbs/11/ –

+0

Nie można tego zastosować na podstawie wierszy zamiast kolumn? –

+0

Czy próbowałeś muru? – maioman

0

Marka div z więcej treści pływaka po prawej dodając drugą klasę do niego.

HTML

<div class="inline right"> 
    A div with more content than the one on the left. Now Inline 3 goes 
    down to where this div ends. I want to move it up however, so it's 
    right under the div that's above Inline 3. 
</div> 

CSS

.right { 
    float: right; 
} 

fiddle