制作一个<ul>列表会创建一个ekstra项目符号

时间:2017-10-21 17:02:42

标签: html

我有一堆代码可以创建下面显示的列表。

  • home

  • 第2页

  • PAGE3

我想删除未使用的点,并了解它的来源。

<ul>
  <li>Home
    <li>
      <li><a href="page2.html"> page2 </a></li>
      <li><a href="page3.html"> page3 </a></li>
</ul>

3 个答案:

答案 0 :(得分:2)

实际上,你忘了关闭

<li>

应该是:

<li>Home</li>

答案 1 :(得分:1)

第二个打开<li>表示新的<li>嵌套在另一个中,因此是一个空的子弹点。

这是语法错误,必须是</li>而不是<li>

<doctype html>
<html>
  <body>
    <ul>
    <li>Home</li>
    <li><a href = "page2.html"> page2 </a></li>
    <li><a href = "page3.html"> page3 </a></li>
    </ul>
  </body>
</html>

答案 2 :(得分:0)

只有开头标记的

template <class T> class Foo { public: Foo () { std::cout << "Default" << std::endl; } template <class ... X> Foo (X ... args) { int dummy[sizeof...(args)] = { (m_data.push_back(args), 0)... }; static_cast<void>(dummy); std::cout << "VA-args" << std::endl; } template <class X> Foo (std::initializer_list<X> && list) : m_data(std::begin(list), std::end(list)) { std::cout << "Initializer" << std::endl; } template <class Container> Foo (const Container & container, decltype(std::begin(container))* = 0, decltype(std::end(container))* = 0) : m_data(std::begin(container), std::end(container)) { std::cout << "Container" << std::endl; } template <class Iterator> Foo (Iterator first, Iterator last, typename Iterator::iterator_category * = 0) : m_data(first, last) { std::cout << "Iterators" << std::endl; } private: std::vector<T> m_data; }; 完全有效,后面跟着另一个<li>或任何结尾标记。

在您的情况下,第二个<li>会创建一个新的空子弹点,因为浏览器会看到您的代码:

<li>

<ul> <li>Home {</li>}<li> {</li>}<li><a href="page2.html"> page2 </a></li> <li><a href="page3.html"> page3 </a></li> </ul> (不含{})是浏览器在下一个开始标记之前添加的标记,用于结束之前的{</li>}元素。

例如对于<li>也是如此。

更多信息:https://www.w3.org/TR/html5/syntax.html#optional-tags