2013-10-08 14 views
56

All'interno di un elemento <ul>, è possibile formattare chiaramente la spaziatura verticale tra le linee con l'attributo altezza linea.Come si imposta lo spazio verticale tra le voci dell'elenco?

La mia domanda è, all'interno di un elemento <ul>, come si imposta la spaziatura verticale tra le voci dell'elenco?

+1

'ul li {margine: ???; imbottitura: ???; altezza della linea: ???; } 'tutti o alcuni di quegli attributi CSS. –

risposta

23

Aggiungi un margin ai tag li. Ciò creerà spazio tra li ed è possibile utilizzare line-height per impostare la spaziatura sul testo all'interno dei tag li.

18

HTML

<ul> 
    <li>A</li> 
    <li>B</li> 
    <li>C</li> 
    <li>D</li> 
    <li>E</li> 
</ul> 

CSS

li:not(:last-child) { 
    margin-bottom: 5px; 
} 

EDIT: Se non si utilizza la cassa speciale per l'ultimo elemento li tua la lista avrà una piccola spaziatura successiva che puoi vedere qui: http://jsfiddle.net/wQYw7/

Ora Confronti che, con la mia soluzione: http://jsfiddle.net/wQYw7/1/

sicuro che questo non funziona nei browser meno recenti, ma si può facilmente utilizzare js estensioni che permetteranno questo per i browser più vecchi.

+1

Non funzionerà in IE <9 – iambriansreed

+1

@Layne parte del nostro lavoro come sviluppatori/codificatori web è fornire soluzioni che funzionino nel maggior numero possibile di ambienti. La tua risposta è davvero esagerata per la domanda posta. – disinfor

+1

Io non la penso così. Fornisci solo una soluzione per l'ambiente che desideri utilizzare come target, tutto il resto sarebbe eccessivo se non prevedi di espandere. Inoltre tutte le risposte hanno lo svantaggio di aggiungere spazio prima e/o dopo il primo/ultimo elemento dell'elenco. Quale non era la domanda, voleva solo avere una spaziatura tra gli elementi della lista (almeno lo scrisse). L'ultimo elemento nelle altre risposte avrà una spaziatura successiva anche se non ci sono elementi li seguenti. –

20

Sarei incline a questo che ha il pregio del supporto IE8.

li{ 
    margin-top: 10px; 
    border:1px solid grey; 
} 

li:first-child { 
    margin-top:0; 
} 

JSFiddle

-9

<br> tra <li></li> voci linea sembra funzionare perfettamente bene in tutti i browser web che ho provato, ma non riesce a passare il controllo W3C CSS3 on-line. Mi dà esattamente l'interlinea che sto cercando. Per quanto mi riguarda, dal momento che funziona indubbiamente, continuo a usarlo, a prescindere dal W3C, fino a quando qualcuno non riuscirà a trovare un'alternativa valida.

+0

Il tuo suggerimento funziona bene se sei soddisfatto dell'altezza della linea corrente, ma penso che voglia specificare la propria quantità di spazio. Usando le interruzioni di riga basta creare nuove linee usando l'altezza della linea corrente. –

+0

Se si itera su un elenco con molti elementi, l'aggiunta di br è una pratica terribile. Markup è il modo più sicuro e sureshot di aggiungere spazio come suggerito dalle risposte precedenti. – SeaWarrior404

Problemi correlati