首页 > 解决方案 > 如何在 CSS 中重置有序列表编号

问题描述

如何重置嵌套有序列表的编号。

运行这个片段,给我一个这样的输出:

我希望 3.1 从 1 开始。我该怎么做?我需要使用多个计数器吗?还是一个人就行?我并没有真正习惯于使用 CSS 计数器。如果它是一系列嵌套的有序列表,则该代码有效,但是当其中有一个无序列表时,它开始失败。它仍然继续上一个有序列表的编号。

ol {
    counter-reset: item 0;
    list-style: none;
}
ul {
    counter-reset: item "";
}
ul:first-child>li {
    counter-reset: item "";
}
ul>li:before {
    content: " ";
    margin-right: 1em;
}
ol ul li:last-child {
    counter-reset: item "";
}
ol>li:before {
    counter-increment: item;
    content: counters(item, ".")".  ";
}
<ul class="ul">
    <li class="li">List 1</li>
    <li class="li">List 2</li>
    <li class="li">List 3
        <ol class="ol">
            <li class="li">List 1</li>
            <li class="li">List 2</li>
            <li class="li">List 3<ul class="ul">
                    <li class="li">List 1</li>
                    <li class="li">List 2</li>
                    <li class="li">List 3
                        <ol class="ol">
                            <li class="li">List 1</li>
                            <li class="li">List 2</li>
                            <li class="li">List 3
                                <ol class="ol">
                                    <li class="li">List 1</li>
                                    <li class="li">List 2</li>
                                    <li class="li">List 3
                                        <ol class="ol">
                                            <li class="li">List 1</li>
                                            <li class="li">List 2</li>
                                            <li class="li">List 3</li>
                                        </ol>
                                    </li>
                                </ol>
                            </li>
                        </ol>
                    </li>
                </ul>
            </li>
        </ol>
    </li>
</ul>

编辑:即使有多个重置计数器,我仍然无法做到这一点。这有希望吗?

标签: htmlcsslistitem

解决方案


您可以查看我的案例:

在此处输入图像描述

我们只需要在第一个孩子处重置

.tos ol > li {
    counter-increment: listNumbering;
    list-style: none;
}
.tos ol > li:before {
    content: counter(listNumbering) '. ';
}
.tos ol > li:first-child {
    counter-reset: listNumbering;
}

推荐阅读