使用 CSS 计数器 属性 的样式化有序列表,其嵌套列表应包含带字母的数字

A styled ordered list whose nested list should have numbers with letters using CSS counter property

我想在 <ol> 下的 <li> 元素中添加一个字母,例如

body { counter-reset: item; }

ol.numbered_style li:before
{
    counter-increment:item;
    margin-bottom:5px;
    margin-right:10px;
    content:counter(item);
    background:blue;
    border-radius:100%;
    color:white;
    width:1.2em;
    text-align:center;
    display:inline-block;
}
ol.numbered_style.start_3{
  counter-reset: item 2; 
}

ol.none, ul.none,ol.numbered_style { list-style: none; }
<ol class="numbered_style">
 <li>first</li>
 <li>second</li>
 <li>third  Lorem Ipsum
  <ol class="numbered_style start_3">
   <li>missing an a after the number</li>
   <li>missing a b after the number</li>
   <li>missing a c after the number</li>
  </ol>
 </li>
</ol>
我试过 li::before { content: " a ";},但这没有用。我还想要一个解决方案,其中添加第二个计数器可以生成具有以下字母数字模式的下一个元素,例如 list-style-type: lower-alpha;

当然,您可以做 <ol> 可以做的任何事情。

ol.numbered_style.start_3{
  counter-reset: item2; 
}

ol.numbered_style.start_3 li:before {
    counter-increment:item2;
    content:counter(item2, upper-latin);
}/* List Style Type========^----------^*/

计数器列表样式类型

  • decimal ------------------------------- 1, 2, 3, ...

  • decimal-leading-zero -------------- 01, 02, 03, ... 09, 10, 11, ...

  • lower-alpha, lower-latin ----------- a, b, c, ... z, aa, ab, ...

  • upper-alpha, upper-latin ---------- A, B, C, ... Z, AA, AB, ...

  • lower-roman ------------------------ i, ii, iii, iv, v, vi, ...

  • upper-roman ------------------------ I, II, III, IV, V, VI, ...

  • asterisks ----------------------------- *, **, ***,...

参考资料

http://www.princexml.com/doc/5.1/counters/

片段

body { counter-reset: item; }

ol.numbered_style li:before
{
    counter-increment:item;
    margin-bottom:5px;
    margin-right:10px;
    content:counter(item, upper-roman);
    background:blue;
    border-radius:100%;
    color:white;
    width:1.2em;
    text-align:center;
    display:inline-block;
}
ol.numbered_style.start_3{
  counter-reset: item2; 
}

ol.numbered_style.start_3 li:before {

    counter-increment:item2;
    margin-bottom:5px;
    margin-right:10px;
    content:"3"counter(item2, upper-latin);
    background:blue;
    border-radius:100%;
    color:white;
    width:1.2em;
    text-align:center;
    display:inline-block;
}
  
ol.none, ul.none,ol.numbered_style { list-style: none; }
<ol class="numbered_style">
 <li>first</li>
 <li>second</li>
 <li>third  Lorem Ipsum
  <ol class="numbered_style start_3">
   <li>missing an a after the number</li>
   <li>missing an b after the number</li>
   <li>missing an c after the number</li>
  </ol>
 </li>
</ol>

试试这个:

ol.main {
  counter-reset: item;
}
ol.main li {
  counter-increment: item;
}
ol.numbered_style li:before {
  margin-bottom: 5px;
  margin-right: 10px;
  content: counter(item);
  background: blue;
  border-radius: 100%;
  color: white;
  width: 1.2em;
  text-align: center;
  display: inline-block;
}
ol.numbered_style ol.numbered_style li {
  counter-increment: subitem;
}
ol.numbered_style ol.numbered_style li:before {
  content: counter(item) counter(subitem, lower-alpha);
}
ol.none,
ul.none,
ol.numbered_style {
  list-style: none;
}
<ol class="main numbered_style">
  <li>first</li>
  <li>second</li>
  <li>third Lorem Ipsum
    <ol class="numbered_style">
      <li>missing an a after the number</li>
      <li>missing a b after the number</li>
      <li>missing a c after the number</li>
    </ol>
  </li>
</ol>

<hr>

<ol class="main numbered_style">
  <li>first</li>
  <li>second</li>
  <li>third Lorem Ipsum
    <ol class="numbered_style">
      <li>missing an a after the number</li>
      <li>missing a b after the number</li>
      <li>missing a c after the number</li>
    </ol>
  </li>
</ol>