2013-04-19 14 views
5

Ho un <dl> in questo modo:lista definizione multi-colonna

<dl> 
<dt id="a_1">Quantity: 
<dd id="a_2"> 
<dt id="b_1">Size: 
<dd id="b_2"> 
<dt id="c_1">Rise: 
<dd id="c_2"> 
<dt id="d_1">Color: 
<dd id="d_2"> 
.... 
</dl> 

Questo elenco viene generato in modo dinamico attraverso il php. Ho un contenitore di una certa altezza. Qual è il modo migliore per rendere questo elenco in due colonne quando diventa troppo grande? Se possibile, mi piacerebbe tenerlo come un dl anche se non è assolutamente necessario.

Se aiuta, sto usando il bootstrap.

+0

Come stai Sistemazione del 'dt's ed i loro associati' dd's? –

+3

puoi semplicemente definire il limite della colonna nello script php in cui viene generato ... e mettere il resto nel secondo 'dl' e metterlo accanto al primo con css ... o potresti anche esaminare qualcosa con jquery ... ecco una domanda simile: http://stackoverflow.com/questions/3009670/flow-2-columns-of-text-automatically-with-css/3039054#3039054 –

+0

possibilmente duplicato di http://stackoverflow.com/questions/5105304/displaying-dt-tag-side-by-side-instead-of-one-below-another – fotanus

risposta

13

Il modo più elegante sarebbe quella di utilizzare le proprietà CSS Colonne:

http://codepen.io/cimmanon/pen/tcyHv

dl { 
    columns: 2; 
} 

dd { 
    break-before: avoid; 
} 

Sostegno è abbastanza buono, ma Firefox non onorare la proprietà break-before (che viene utilizzato per evitare che la definizione finisca in una colonna diversa dal suo termine). L'aggiunta di prefissi potrebbe essere necessaria.

http://caniuse.com/#feat=multicolumn

+0

Hmmm ... non sembra funzionare. L'elemento id = c_2 viene visualizzato due volte. Non riesco a ottenere più colonne con l'elenco delle descrizioni per funzionare. –

+1

Purtroppo questo non funziona in Chrome 58.0.3029.110 – Jonny

Problemi correlati