html - 将有序列表设置为 "1.1, 1.2"而不是 "1, 2"

标签 html css list html-lists

注意:

由于下面留下的一些答案/评论(我同意),我觉得这个问题太模糊,并没有充分解释我的问题。我整理的时候太匆忙,导致答案不正确,我认错。由于当前的答案和评论,我觉得即使我再次编辑这个问题, future 的观看者也会对页面上的答案/评论感到困惑,除非每个人也都更新它们。因此,我创建了另一个问题来完全澄清我的问题。再次,对于我在这个问题上造成的困惑,我深表歉意。

澄清的问题可以在这里找到:Style an Ordered List like “X.X” based on list start attribute


我正在更新包含政策页面的客户网站。该政策有九个不同的部分,每个部分都有自己的内容。每个部分内都有不同的部分语句,其编号系统应为“x.x”。然而,这在基本 HTML 中并不存在。此外,某些部分内部有各种不同形式的有序列表。


我已经确定我不想以嵌套的方式解决这个问题,也就是说像这样:

<ol>
    <li>Section 1
        <ol>
            <li>Item 1</li>
            <li>Item 2</li>
        </ol>
    </li>
</ol>

这是我看过的所有其他答案处理问题的方式。相反,我希望像这样解决它(下面示例的代码)。我想要一个仅显示“x.1、x.2、x.3”的列表,其中“x”取决于该特定列表的起始编号。

<h2>Section 1</h2>
<strong>Heading 1</strong>
<ol class="specialList">
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
</ol>
<strong>Heading 2</strong
<ol type="lower-roman">
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
</ol>

<h2>Section 2</h2>
<ol class="specialList">
    <li>
        <ol type="upper-alpha">
            <li>First subitem</li>
            <li>Second subitem</li>
        </ol>
    </li>
    <li>Second Item</li>
    <li>Third Item</li>
</ol>

<h2>Section 3</h2>
<ol class="specialList">
    <li>First item
        <ol type="circle">
            <li>First subitem</li>
            <li>Second subitem</li>
        </ol>
    </li>
    <li>Second item</li>
    <li>Third item</li>
</ol>

<h2>Section 4</h2>
<ol class="specialList">
    <li>First item</li>
    <li>Second item</li>
    <li>Third item</li>
</ol>

第 1 节

  标题
1.1 第一项
1.2 第二项
1.3 第三项

标题 2
我。第一项
二.第二项
三.第三项

第 2 部分

  2.1 第一项
A. 第一个子元素
B. 第二分项
2.2 第二项
2.3 第三项

第 3 部分

  3.1 第一项
• 第一个子元素
• 第二个子元素
3.2 第二项
3.3 第三项

第 4 节

  4.1 第一项
4.2 第二项
4.3 第三项


这样,我可以避免使用嵌套的有序列表,并希望简化问题,尤其是必要的 CSS。这意味着将一些起始值属性硬编码到每个有序列表中,但策略部分不会频繁更改,因此这应该不重要。

我不想使用 JavaScript,因为无论用户的设置如何,客户端都希望它看起来像这样。这些页面是JSP页面,所以如果有办法将其设置为动态生成,那就可以了。

我已经查看了下面的这些链接。虽然它们都是很好的问题,但没有一个回答我的具体问题。第一个处理嵌套的有序列表,而我处理单个有序列表。第二个想法是正确的,但仍然有点不同(有“x.x.x”,而我只想要“x.x”)。

Can Ordered List Produce Results that looks like 1.1?

Achieve sub numbering on ordered list

如果我需要澄清任何事情,请告诉我!谢谢!


摘要

总之,客户端想要一个从“x.1”开始并尽可能远的列表,其中“x”是特定列表的给定起始值属性。我刚刚跟他们澄清了这件事,这就是这次需求“更新”的原因。基本上,我需要一个类,将列表顶层的编号系统更改为“x.x”格式(同样,第一个“x”是起始值”)。任何子列表(嵌套列表)都不会遵循此格式格式,但将遵循“type”或“list-style”属性指定的另一种格式。

最佳答案

花了一段时间才弄清楚这个!

这是我的fiddle

 h2.title {
   font-size: 20px;
   font-weight: 800;
   margin-left: -20px;
   padding: 12px;
   counter-increment: ordem;
 }
 li.heading {
   font-size: 16px;
   font-weight: bold;
   padding: 12px;
   list-style-type: none;
 }
 .bullet {
   counter-reset: bullet;
   padding-left: 12px;
 }
 .bullet li {
   list-style-type: none;
 }
 .bullet li:before {
   counter-increment: bullet;
   content: counter(ordem)"." counter(bullet)" ";
 }
 ol.none {
   list-style: none!important
 }
 li.s2sub::before {
   counter-increment: none!important;
   content: none!important;
 }
 li.s2sub {
   list-style: upper-alpha;
 }
 li.s3sub::before {
   counter-increment: none!important;
   content: none!important;
 }
 li.s3sub {
   list-style-type: circle;
 }
 li.roman::before {
   counter-increment: none!important;
   content: none!important;
 }
 li.roman {
   list-style: lower-roman inside;
 }
<body>
  <ol>
    <h2 class="title">Section 1</h2> 
    <li class="heading">Heading 1</li>

    <ol class="bullet">
      <li>text 1 one</li>
      <li>text 1 two</li>
      <li>text 1 three</li>
      <li>text 1 four</li>
    </ol>
    <li class="heading">Heading 2</li>

    <ol class="bullet">
      <li class="roman">Item 1</li>
      <li class="roman">Item 2</li>
      <li class="roman">Item 3</li>
    </ol>
    <h2 class="title">Section 2</h2>
    <ol class="bullet">
      <li>First item
        <ol>
          <li class="s2sub">First subitem</li>
          <li class="s2sub">Second subitem</li>
        </ol>
      </li>
      <li>Second Item</li>
      <li>Third Item</li>
    </ol>
    <h2 class="title">Section 3</h2>
    <ol class="bullet">
      <li>First item
        <ol>
          <li class="s3sub">First subitem</li>
          <li class="s3sub">Second subitem</li>
        </ol>
      </li>
      <li>Second item</li>
      <li>Third item</li>
    </ol>
  </ol>
</body>

关于html - 将有序列表设置为 "1.1, 1.2"而不是 "1, 2",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31859932/

相关文章:

javascript - 单击 div 时在 jQuery 中发送 POST 请求

javascript - 如何将幻灯片合并到 HTML 中?

javascript - 单击标签时如何删除事件类?

html - Margin-bottom 只与 float-left 一起使用

PHP/HTML 仅显示 x 数量的结果,具体取决于视口(viewport)

javascript - 如何在 Accordion 的容器内添加滚动条?

html - DIV的背景色没有填满DIV

string - 为什么这些值有时未定义?

python - 数据框到字典,包括字典列表

c# - 过滤列表条目