HTML 有序列表缩进以保留原始编号



我需要缩进有序列表以保持父列表项编号:

我有什么:

 // My code:
 <ol>
      <li>Item 1</li>
      <li>
           Item 2
           <ol>
                <li>Item 2.1</li>
                <li>Item 2.2</li>
           </ol>
      </li>
      <li>Item 3</li>
 </ol>

等等。

我现在得到的结果是:

      // Result:
      1. Item 1
      2. Item 2
           Item 1
           Item 2
      3. Item 3

我正在寻找的是:

      // Looking for:
      1. Item 1
      2. Item 2
           2.1 Item 2.1
           2.2. Item 2.2
      3. Item 3

有什么想法吗?

您可以使用计数器来执行此操作:

OL { counter-reset: item }
LI { display: block }
LI:before { content: counters(item, ".") " "; counter-increment: item }

受到 DON 的回答的启发,我玩了一下计数器属性,并设法使以下工作:

 ol {
     counter-reset: item;
     list-style-type: none;
 }
 ol li:before {
     font-weight: bold;
     content: counters(item,".")".   "; 
     counter-increment: item;
 }
 ol ol {
     counter-reset: subitem;
     list-style-type: none;
 }
 li li:before {
     content: counters(item,".")"."counters(subitem,".")".   "; 
     counter-increment: subitem;
 }

我不相信这是最干净的解决方案,因为我不太了解内容元素,但这肯定会给你一个有序列表,该列表根据父容器的最后一个列表项增加子级列表项。

最新更新