2015-12-16 15 views
6

Ho un problema in cui i blocchi si impilano per 2 e i successivi 2 blocchi iniziano alla fine dei primi 2 blocchi. Come mostrato in this JSFiddle demo.Come ignorare il margine che i blocchi in linea creano con altezze diverse?

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; 
} 

uscita:

Output

Nota:Questo non occupa lo spazio bianco creato dal div in alto a destra.

atteso/wanted uscita:

Expected output

Nota:Questo non fanno uso del spazi bianchi.

Sono consapevole che questo è possibile con 2 colonne, ma non voglio utilizzare 2 colonne. Perché devo essere in grado di rimuovere alcuni div senza avere contenuti diversi nelle colonne.

risposta

0

si può provare a utilizzare column-count proprietà,

essere a conoscenza gli elementi verranno ordinati in ordine di colonna discendente.

fiddle

+0

Il posizionamento va bene, ma non voglio gli elementi per essere ri-ordinato. Sarà confuso poiché il contenuto viene creato dinamicamente, come questo: https://jsfiddle.net/rezf2mbs/11/ –

+0

Non potrebbe essere applicato in base alle righe, anziché alle colonne? –

+0

hai provato la muratura? – maioman

0

Fai il div con più contenuti galleggiante a destra con l'aggiunta di una seconda classe ad esso.

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

Problemi correlati