CSS-отступ элементов списка
есть ли способ отступить каждый элемент списка с помощью CSS?
Итак, обычный список:
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
</ul>
отображается вот так:
One
Two
Three
Four
2 ответов
здесь вы можете использовать :before
псевдо-элемент с прозрачной границей.
Отступ элемента списка можно изменить, изменив ширину псевдо-элемента.
Наряду с этим вы можете изменить маркер списка, если set list-style: none;
и set color
of content
EDIT:
удалены display: block
и color: transparent
и используется пробел a0
как содержание.
li:before {
float: left;
content: "a0";
width: 20px;
border: 1px solid transparent;
}
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
</ul>
следующий немного сложнее с измененным маркером списка (удалено display: block
как посоветовал @dippas, но border
почему-то не получилось)
ul {
list-style: none;
counter-reset: cnt;
}
li:before {
float: left;
counter-increment: cnt;
content: counter(cnt)" b6";
max-height: 100%;
width: 25px;
border: 1px solid transparent;
margin-top: -.2em;
color: green;
}
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
</ul>
если у вас много list-items
,потом ответ данный @Banzay чище, но если у вас их всего несколько, вы можете использовать nth-child
для этого
li:first-child {
margin-left: 10px
}
li:nth-child(2) {
margin-left: 20px
}
li:nth-child(3) {
margin-left: 30px
}
li:nth-child(4) {
margin-left: 40px
}
/*just demo*/
ul {
margin: 0;
padding: 0;
list-style: none;
}
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
</ul>