我有一堆代码可以创建下面显示的列表。
home
第2页
PAGE3
我想删除未使用的点,并了解它的来源。
<ul>
<li>Home
<li>
<li><a href="page2.html"> page2 </a></li>
<li><a href="page3.html"> page3 </a></li>
</ul>
答案 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>
也是如此。