2013-10-08 4 views
56

Внутри элемента <ul> ясно, что вертикальное расстояние между строками может быть отформатировано атрибутом line-height.Как установить вертикальное пространство между элементами списка?

Мой вопрос в том, что в элементе <ul>, как установить вертикальное расстояние между элементами списка?

+1

'ul li {margin: ???; padding: ???; высота линии: ???; } 'все или некоторые из этих атрибутов CSS. –

ответ

23

Добавить margin в ваши li теги. Это создаст пространство между li, и вы можете использовать line-height для установки интервала текста в тегах 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: Если вы не используете специальный случай для последнего элемента LI ваш После этого список будет иметь небольшой интервал, который вы можете увидеть здесь: http://jsfiddle.net/wQYw7/

Теперь сравните это с моим решением: http://jsfiddle.net/wQYw7/1/

уверен, что это не работает в старых браузерах, но вы можете легко использовать JS расширения, которые позволят это для старых браузеров.

+1

Не будет работать в IE <9 – iambriansreed

+1

@ Нашей частью нашей работы в качестве веб-разработчиков/кодировщиков является предоставление решений, которые будут работать в максимально возможной среде. Ваш ответ действительно переборщил по заданному вопросу. – disinfor

+1

Я так не думаю. Вы только предоставляете решение для среды, на которую хотите настроить таргетинг, все остальное будет излишним, если вы не планируете расширять. Плюс все ответы имеют недостаток в добавлении пространства до и/или после элемента first/last list. В этом не было вопроса, он хотел иметь только промежутки между элементами списка (по крайней мере, он написал это). Последний элемент в других ответах будет иметь промежуток после этого, хотя не существует следующих элементов li. –

20

Я был бы склонен к тому, что имеет силу поддержки IE8.

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

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

JSFiddle

-9

<br> между <li></li> записей строки, кажется, работает отлично во всех браузерах, которые я пробовал, но он не может пройти он-лайн W3C CSS3 проверки. Это дает мне точно расстояние между строками, которым я занимаюсь. Насколько мне известно, поскольку он, несомненно, работает, я продолжаю использовать его, независимо от того, что W3C говорит, до тех пор, пока кто-то не сможет найти хорошую юридическую альтернативу.

+0

Ваше предложение работает отлично, если вы довольны текущей высотой строки, но я думаю, что он хочет указать свой собственный объем пространства. Использование разрывов строк просто создает новые строки, используя текущую высоту строки. –

+0

Если вы перебираете список со множеством предметов, добавление br - ужасная практика. Разметка - это самый безопасный и сурештный способ добавления пространства, как это высказал выше. – SeaWarrior404

Смежные вопросы