2013-06-24 30 views
13

这些代码片断在语法上是否正确?我正在使用第一个代码段来构建一个导航(在ul中嵌套标题标签)。如果它是错误的或者这是一个坏习惯有什么缺点。在里面嵌套html标签而不是li

<ul class="site-title left"> 
    <header> 
    <li><h1>site title</h1></li> 
    </header>       
</ul> 

<ul class="site-title left"> 
    <span> 
    <li><h1>site-title</h1></li> 
    </span>       
</ul> 
+1

缺点是,它可能无法正常工作或在不同的浏览器外观不同 –

+1

我建议:同样'<李班=“头”>' –

+1

:检查的有效性语法,[W3C Validator](http://validator.w3.org/#validate_by_input)是你的朋友。 – lime

回答

17

没有

按照specthe ul element是:

UI元素代表项目清单,对其中阶物品并不重要 - 即更改订单的位置不会实质性地改变文件的含义。

该列表中的项目是ul元素的li元素子节点。

所以UL元素的孩子一定li元素。

更具体地说,它说,ul标签下:

内容模型:

Zero or more li elements. 

然而,完全合法的事情:

<ul class="site-title left"> 
    <li><span><h1>site-title</h1></span></li> 
</ul> 
+2

惊人的你可以在规格中找到,呃?我发现这个版本更容易处理这种事情:http://dev.w3.org/html5/markup/ul.html –

+2

最近几年来一直在努力使spec更具可读性。最终目标是让开发人员和实现者(比如浏览器供应商)能够轻松访问这些信息。:)感谢dev.w3.org链接,它们更具可读性,我只是习惯于阅读夜总会: )我会更新链接。 –

+0

他们在规格方面做得很好,最新的规格非常清晰,简洁并且可读。 –

1

验证输出:1错误

错误25行,第51列:元素h1不允许作为此上下文中元素跨度的子元素。 (从这个子树抑制进一步的错误。)

  <li><span><h1 class="Tabellenkopf">Menü</h1></span></li>