使用CSS自动生成HTML中的编号列表#第二部分

使用CSS自动生成HTML中的编号列表#第二部分,html,css,Html,Css,在中,我一直在使用CSS为标记创建自动生成的列表编号。在另一个任务中,我需要创建另一个列表,该列表的标题位于列表的中间,如下图所示 上面的例子可以用下面的代码实现 HTML <ol class="main"> <span class="title">Title</span> <li> Content </li> <li> Content </li

在中,我一直在使用CSS为
  • 标记创建自动生成的列表编号。在另一个任务中,我需要创建另一个列表,该列表的标题位于列表的中间,如下图所示

    上面的例子可以用下面的代码实现

    HTML

    <ol class="main">
        <span class="title">Title</span>
        <li>
            Content
        </li>
        <li>
            Content
        </li>
        <span class="title">Title</span>
        <li>
            Content
        </li>
    </ol>
    
    但是,此代码在某些浏览器(如Opera)中不起作用。这是因为在HTML5中,
    标记不能嵌套在元素

    可以在Firefox、Chrome和Internet Explorer中使用。

    您可以将
    嵌套在无序列表中,并为每个列表指定一个开始位置:

    <ul class="main">
      <li>Title Of Section
          <ol>
              <li>Content 1</li>
          </ol>
      </li>
      <li>Title Of Section
          <ol start="2">
              <li>Content 1</li>
              <li>Content 2</li>
              <li>Content 3</li>
          </ol>
      </li>
    </ul>
    
    • 章节标题
    • 内容1
    • 章节标题
    • 内容1
    • 内容2
    • 内容3
    我把它放在一起,使用jquery自动更新每个有序列表的atart位置。

    您可以将
    嵌套在无序列表中,并为每个列表分配一个起始位置:

    <ul class="main">
      <li>Title Of Section
          <ol>
              <li>Content 1</li>
          </ol>
      </li>
      <li>Title Of Section
          <ol start="2">
              <li>Content 1</li>
              <li>Content 2</li>
              <li>Content 3</li>
          </ol>
      </li>
    </ul>
    
    • 章节标题
    • 内容1
    • 章节标题
    • 内容1
    • 内容2
    • 内容3
    我把它放在一起,使用jquery自动更新每个有序列表的atart位置。

    它在Chrome 26和FF 20中工作(没有在其他浏览器上测试)。与前面的问题不同的是,您不需要每次都重置计数器

    /* Don't reset every time!!! */
    /* ol.inner {counter-reset:section;} */
    
    ol.inner li {counter-increment:section;}
    ol.inner li:before {content: counters(section,"") ". ";}
    
    在Chrome 26和FF 20中都可以使用(还没有在其他浏览器上测试过)。与前面的问题不同的是,您不需要每次都重置计数器

    /* Don't reset every time!!! */
    /* ol.inner {counter-reset:section;} */
    
    ol.inner li {counter-increment:section;}
    ol.inner li:before {content: counters(section,"") ". ";}
    

    嗯,这是违反规则的(在所有版本的HTML中),所以更好的解决方案是先找到有效的HTML,然后检查它在浏览器中是否有效。这就是我一直在寻找的答案。我想出了一个在Firefox和Opera中运行得很好的方法。不幸的是,不是在IE9或Chrome中。很抱歉回到绘图板…好吧,这是违反规则的(在所有版本的HTML中),所以更好的解决方案是先找到有效的HTML,然后检查它是否在浏览器中工作。这就是我一直在寻找的答案。我想出了一个在Firefox和Opera中运行得很好的方法。不幸的是,不是在IE9或Chrome中。很抱歉回到绘图板…谢谢你的回复。我希望避免使用javascript:)谢谢你的回复。我希望避免使用javascript:)