L'approccio attuale il nostro sito sta usando per rompere un unico elenco in più colonne è quello di utilizzare più ul
s:Come posso interrompere una singola lista in più colonne semanticamente?
<ul>
<li>one</li>
<li>two</li>
</ul>
<ul>
<li>three</li>
<li>four</li>
</ul>
Questa non sembra l'ideale per me, in quanto semanticamente, non due liste, è uno . Ho visto molte soluzioni inadeguate per elenchi di più colonne. Sto cercando una soluzione che:
utilizza la seguente struttura di markup
<ul> <li>one</li> <li>two</li> <li>three</li> <li>four</li> </ul>
organizza in questo modo:
one three two four
Non questo:
one two three four
Opere senza modifiche se la lunghezza della lista cambia o se gli elementi racchiudono più righe.
- Utilizza HTML semantico valido.
- Funziona fino a IE8.
La soluzione ideale è solo CSS, ma sono aperto a utilizzare l'interfaccia utente jQuery o Javascript leggero.
(. PS, here's my CSS attempt, con notevoli problemi)
Edit: Questa domanda è specifico per semantici liste. L'altra domanda apparentemente "duplicata" riguarda gli elementi <div>
, che è un altro gioco a palla perché è ammesso markup addizionale. Nessun markup aggiuntivo è consentito tra uno <ul>
e uno <li>
. Questa domanda è incentrata sulla semantica , il che significa che c'è un'enfasi sull'uso dell'HTML per indicare con il maggior numero di dettagli possibile il significato del contenuto.
Il solo CSS sarebbe difficile in quanto è necessario sapere quali devono essere spostati a sinistra e quali a virgola mobile, tuttavia con js tutto ciò che si deve fare è aggiungere una classe alla prima metà e un'altra classe alla seconda metà, una fluttuante lasciò l'altra a destra. –
puoi usare nth selettori figlio come odd e even, ma non funzionerebbe in IE8 –
@BrianGlaz odd/even risulterebbe in 'one two' sulla riga uno e' three four' sulla riga due piuttosto che come previsto ' three' and' two four' –