С помощью следующего HTML-кода, какой самый простой способ отобразить список в виде двух столбцов?
<ul>
<li>A</li>
<li>B</li>
<li>C</li>
<li>D</li>
<li>E</li>
</ul>
Желаемый дисплей:
A B
C D
E
Решение должно уметь работать в Internet Explorer.
Ответы:
Современные браузеры
использовать модуль столбцов css3 для поддержки того, что вы ищете.
http://www.w3schools.com/cssref/css3_pr_columns.asp
CSS:
http://jsfiddle.net/HP85j/8/
Устаревшие браузеры
К сожалению, для поддержки IE вам понадобится кодовое решение, которое включает в себя JavaScript и манипуляции с dom. Это означает, что каждый раз, когда содержимое списка изменяется, вам нужно будет выполнить операцию по переупорядочению списка в столбцы и повторной печати. Решение ниже использует jQuery для краткости.
http://jsfiddle.net/HP85j/19/
HTML:
JavaScript:
CSS:
РЕДАКТИРОВАТЬ:
Как указано ниже, это упорядочит столбцы следующим образом:
в то время как ОП запросил вариант, соответствующий следующему:
Для реализации варианта просто измените код на следующий:
источник
A B
(второй элемент должен быть добавлен справа), но в ваших примерах этоA E
.Я искал решение @ jaider, которое сработало, но я предлагаю немного другой подход, с которым, как мне кажется, легче работать и который, как мне показалось, хорошо работает в браузерах.
По умолчанию неупорядоченный список отображает положение маркера снаружи, но в некоторых браузерах это может вызвать проблемы с отображением в зависимости от способа размещения вашего сайта в браузере.
Чтобы получить его для отображения в формате:
и т. д. используйте следующее:
Это должно решить все ваши проблемы с отображением столбцов. Всего наилучшего и спасибо @jaider, поскольку ваш ответ помог мне разобраться в этом.
источник
Я попытался опубликовать это как комментарий, но не смог правильно отобразить столбцы (согласно вашему вопросу).
Вы просите:
AB
CD
Е
... но ответ, принятый в качестве решения, вернется:
ОБЪЯВЛЕНИЕ
БЫТЬ
С
... так что либо ответ неправильный, либо вопрос.
Очень простое решение было бы установить ширину вашего,
<ul>
а затем плавать и установить ширину ваших<li>
предметов, как такПример здесь http://jsfiddle.net/Jayx/Qbz9S/1/
Если ваш вопрос неправильный, то применяются предыдущие ответы (с исправлением JS за отсутствие поддержки IE).
источник
Мне нравится решение для современных браузеров, но маркеры отсутствуют, поэтому я добавлю его в небольшую хитрость:
http://jsfiddle.net/HP85j/419/
источник
list-style-position: inside;
это лучшее решение для отображения пуль.Вот возможное решение:
Отрывок:
И это сделано.
Для 3 столбцов используйте
li
ширину как 33%, для 4 столбцов используйте 25% и так далее.источник
Это самый простой способ сделать это. Только CSS
источник
Вы можете использовать CSS только для установки двух или более столбцов
источник
Это может быть достигнуто с помощью свойства css столбца в родительском div,
лайк
проверьте это для более подробной информации.
Как заставить плавающий список DIV появляться в столбцах, а не в строках
источник
column-count
не будет отображать элементы в правильном порядке. Например, желаемое отображение в первой строкеA B
(второй элемент должен быть добавлен справа), но если вы используетеcolumn-count
его, он будетA E
.Вы можете сделать это очень легко с помощью плагина jQuery-Columns, например, чтобы разделить ul с классом .mylist, который вы бы сделали
Вот живой пример на jsfiddle
Мне это нравится больше, чем с CSS, потому что с решением CSS не все выравнивается вертикально вверх.
источник
<ul>
список на несколько списков ... Это может усложнить другие вещи.еще один ответ через несколько лет!
в этой статье: http://csswizardry.com/2010/02/mutiple-column-lists-using-one-ul/
HTML:
CSS:
источник
При
updateColumns()
необходимости,if (column >= columns.length)
вместо того,if (column > columns.length)
чтобы перечислять все элементы (например, C пропускается), так:http://jsfiddle.net/e2vH9/1/
источник
С помощью Bootstrap ... Этот ответ ( https://stackoverflow.com/a/23005046/1128742 ) подсказал мне следующее решение:
http://jsfiddle.net/patrickbad767/472r0ynf/
источник
Устаревшее решение в верхнем ответе не сработало для меня, потому что я хотел повлиять на несколько списков на странице, и ответ предполагает один список, плюс он использует довольно много глобального состояния. В этом случае я хотел изменить каждый список внутри
<section class="list-content">
:источник
Хотя я нашел ответ Габриэля на работу до такой степени, я обнаружил следующее при попытке упорядочить список по вертикали (первый ul AD и второй ul EG):
Я пересмотрел JQuery, поэтому, надеюсь, вышеизложенного не произойдет.
источник
Это было идеальное решение для меня, смотреть его годами:
http://css-tricks.com/forums/topic/two-column-unordered-list/
источник
Abdul
в его ответе, идентичный даже ширине и идентификатору.