将HTML列表深度重置为根级别(用于项目符号)

Cor*_*ryG 5 html css nested-lists html-lists

例如,我想将此小提琴(下面的代码)中列表的第4级设置为根级。这意味着第4级的项目符号看起来像第1级,第5级看起来像第2级,第6级看起来像第3级。由于不同的浏览器具有不同的项目符号样式,因此需要在不手动覆盖每个项目的项目符号的情况下进行。

<ul>
    <li>level 1 item</li>
    <li>level 1 item
        <ul>
            <li>level 2 item</li>
            <li>level 2 item
                <ul>
                    <li>level 3 item</li>
                    <li>level 3 item
                        <ul>
                            <li>level 4 item</li>
                            <li>level 4 item
                                <ul>
                                    <li>level 5 item</li>
                                    <li>level 5 item
                                        <ul>
                                            <li>level 6 item</li>
                                            <li>level 6 item</li>
                                            <li>level 6 item</li>
                                        </ul>
                                    </li>
                                    <li>level 5 item</li>
                                </ul>
                            </li>
                            <li>level 4 item</li>
                        </ul>
                    </li>
                    <li>level 3 item</li>
                </ul>
            </li>
            <li>level 2 item</li>
        </ul>
    </li>
    <li>level 1 item</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

Cor*_*ryG 2

似乎所有的浏览器都是圆盘-圆-方的,所以我设法用一点CSS和一个类来实现这一点(自动应用于<ul>元素内的元素<ol>,但不应用于其他元素。) 在这里和下面进行拨弄:CSS

ol > li > ul > li > ul > li > ul {
    list-style-type: square;
}
ul.initial > li > ul > li > ul {
    list-style-type: square;
}
ol > li > ul > li > ul {
    list-style-type: circle;
}
ul.initial > li > ul {
    list-style-type: circle;
}
ol > li > ul {
    list-style: initial;
}
ul.initial {
    list-style: initial;
}
Run Code Online (Sandbox Code Playgroud)