如何跳过HTML列表中的级别?

时间:2019-03-02 20:11:33

标签: html

我有一个用例,其中我是根据任意输入自动生成HTML的,可能会导致列表跳过某个级别,例如:

<!DOCTYPE html>
<html lang=en>

  <head>
    <title>Skipping a level in a list</title>
  </head>

  <body>
    <ul>
      <li>Valid HTML
        <ul>
          <li>
            <ul>
              <li>But displays an awkward extra marker</li>
            </ul>
          </li>
        </ul>
      </li>
      <li>Invalid HTML
        <ul>
          <ul>
            <li>But no extra marker, looks good</li>
          </ul>
        </ul>
      </li>
    </ul>
  </body>

</html>

如此处所述,我可以使用外观笨拙但有效的HTML或外观更好但无效的HTML。显然,我宁愿拥有美观且有效的HTML。

有什么我可以做的吗?请记住,我也想支持这样的结构:

- Lorem
    - Ipsum
  -Dolor

2 个答案:

答案 0 :(得分:4)

您可以使用CSS跳过第二级或其他级别。

根据您的用例,最好使用CSS类。

例如:

.item-level-not-visible{
    list-style-type: none;
}

ul ul{ /*skip second level*/
  list-style-type: none; 
}

ul ul ul{
  list-style-type: square;
}
<!DOCTYPE html>
<html lang=en>

  <head>
    <title>Skipping a level in a list</title>
  </head>

  <body>
    <ul>
      <li>Valid HTML
        <ul>
          <li>
            <ul>
              <li>But displays an awkward extra marker</li>
            </ul>
          </li>
        </ul>
      </li>
      <li>Invalid HTML
        <ul>
          <ul>
            <li>But no extra marker, looks good</li>
          </ul>
        </ul>
      </li>
    </ul>
  </body>

</html>

答案 1 :(得分:1)

我知道的唯一方法是您使用的有效方法。您可以执行类似的操作,但是我不确定其他开发人员会首选哪种编写方法:

<ul>
    <li><ul>
         <li>List item</li>
     </ul></li>
</ul>

<ul>
    <li><ul><li>List item</li></ul></li>
</ul>