Нынешний подход наш сайт использует разбить один список в несколько колонок является использование нескольких ul
S:Как я могу разбить один список на несколько столбцов семантически?
<ul>
<li>one</li>
<li>two</li>
</ul>
<ul>
<li>three</li>
<li>four</li>
</ul>
Это не кажется идеальным для меня, так как семантически, это не два списка, это один , Я видел много неадекватных решений для списков с несколькими столбцами. Я ищу решение, которое:
использует следующую структуру разметки
<ul> <li>one</li> <li>two</li> <li>three</li> <li>four</li> </ul>
Организует так:
one three two four
Не так:
one two three four
Работы без изменений, если изменения длины списка, или если элементы переносят несколько строк.
- Использует действительный семантический HTML.
- Работает до IE8.
Идеальное решение - только CSS, но я открыт для использования jQuery UI или легкого Javascript.
(. PS, here's my CSS attempt, с заметными проблемами)
Edit: Этот вопрос относится только к семантических списков. Другой, предположительно «дублирующий» вопрос касается <div>
элементов, который является другим мячом, потому что допускается дополнительная разметка. Никакая дополнительная разметка не допускается между <ul>
и <li>
. Этот вопрос сфокусирован на семантике, что означает, что акцент делается на использовании HTML, чтобы указать с максимально подробными сведениями о содержании.
CSS только было бы сложно, так как вам нужно будет знать, какие из них будут плавать влево, а какие - плавать вправо, однако с помощью js вам нужно будет добавить один класс в первую половину из них, а другой класс во вторую половину, один плавающий оставил другое плавающее право. –
вы можете использовать n-й дочерний селектор, как нечетный и четный, но он не будет работать в IE8 –
@BrianGlaz нечетно/даже приведет к «одной двух» в строке 1 и «три четверых» на второй строке, а не в предполагаемой «одной» три 'и' two four' –