CSS |列表项上方单个垂直列中的有序列表
CSS | Ordered list in single vertical column above list item
我想创建一个有序列表(十进制),其中所有项目 rag-left 与其数字 header 对齐。例如:
List
1.
This is list item 1
2.
This is list item 2
3.
This is list item 3
我一直在四处寻找,但没有找到任何实现方法。我仍然想使用 an,因为它比手动输入数字更好。反正有没有把和列为一个单一的列?
正如@Imgonzalves 所指出的——
HTML
<ol>
<li><span>list item</span></li>
<li><span>list item</span></li>
<li><span>list item</span></li>
</ol>
CSS
ol li span {
position: relative;
left: -20px;
display:block;
}
您可以在每个 li
元素之前创建一个空块元素,这样您就可以实现 li
内容在新行上的效果,而无需在 <br/>
处键入每个列表项的开头。
li{
float: left;
clear: both;
}
li:before { content: ' '; display: block; }
<ol>
<li> list item </li>
<li> list item </li>
<li> list item </li>
<li> list item </li>
</ol>
你可以在每个 li
元素之前创建一个空块元素,这样你就可以达到换行的效果。
试试这个 fiddle
看,CSS 计数器!我在 CSS 中添加了注释来解释解决方案。 This article by Louis Lazaris 对细节的解释非常出色。
.fancy-list {
margin: 0;
padding: 0;
list-style: none; /* hide original list numbering */
counter-reset: ordered-list; /* initialize CSS counter */
}
.fancy-list li {
margin-bottom: 12px;
}
.fancy-list li::before {
display: block; /* display numbering as block to force content down */
margin-bottom: 4px;
counter-increment: ordered-list; /* increment CSS counter for every <li> in the list */
content: counter(ordered-list) "."; /* output counter value and append a "." */
}
<p>This solution has the following benefits:</p>
<ol class="fancy-list">
<li>does not require superfluous HTML</li>
<li>maintains semantics of an ordered list</li>
<li>is flexible; doesn't matter how many items you have</li>
<li>you don't need to adjust the left margin for list items if you change the list's left margin</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
</ol>
我想创建一个有序列表(十进制),其中所有项目 rag-left 与其数字 header 对齐。例如:
List
1.
This is list item 1
2.
This is list item 2
3.
This is list item 3
我一直在四处寻找,但没有找到任何实现方法。我仍然想使用 an,因为它比手动输入数字更好。反正有没有把和列为一个单一的列?
正如@Imgonzalves 所指出的——
HTML
<ol>
<li><span>list item</span></li>
<li><span>list item</span></li>
<li><span>list item</span></li>
</ol>
CSS
ol li span {
position: relative;
left: -20px;
display:block;
}
您可以在每个 li
元素之前创建一个空块元素,这样您就可以实现 li
内容在新行上的效果,而无需在 <br/>
处键入每个列表项的开头。
li{
float: left;
clear: both;
}
li:before { content: ' '; display: block; }
<ol>
<li> list item </li>
<li> list item </li>
<li> list item </li>
<li> list item </li>
</ol>
你可以在每个 li
元素之前创建一个空块元素,这样你就可以达到换行的效果。
试试这个 fiddle
看,CSS 计数器!我在 CSS 中添加了注释来解释解决方案。 This article by Louis Lazaris 对细节的解释非常出色。
.fancy-list {
margin: 0;
padding: 0;
list-style: none; /* hide original list numbering */
counter-reset: ordered-list; /* initialize CSS counter */
}
.fancy-list li {
margin-bottom: 12px;
}
.fancy-list li::before {
display: block; /* display numbering as block to force content down */
margin-bottom: 4px;
counter-increment: ordered-list; /* increment CSS counter for every <li> in the list */
content: counter(ordered-list) "."; /* output counter value and append a "." */
}
<p>This solution has the following benefits:</p>
<ol class="fancy-list">
<li>does not require superfluous HTML</li>
<li>maintains semantics of an ordered list</li>
<li>is flexible; doesn't matter how many items you have</li>
<li>you don't need to adjust the left margin for list items if you change the list's left margin</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
</ol>