HTML嵌套规则

参考:
      html标签的嵌套规则-慕课网
      HTML标签嵌套规则-博客园
      WEB标准系列-HTML元素嵌套

块元素:
     address、blockquote、center、dir、div、dl、dt、dd、fieldset、form、h1~h六、hr、isindex、menu、noframes、noscript、ol、p、pre、table、ul等
内联元素:
     a、abbr、acronym、b、bdo、big、br、cite、code、dfn、em、font、i、img、input、kbd、label、q、s、samp、select、small、span、strike、strong、sub、sup、textarea、tt、u、var等
 
嵌套规则:
  • 块能包含块和内联,内联只能包含内联
    •  块元素能够包含内联元素或某些块元素,但内联元素却不能包含块元素,它只能包含其它的内联元素
  • 标题和段落中不能包含块
    • 有几个特殊的块级元素只能包含内嵌元素,不能再包含块级元素,这几个特殊的标签是
    • h一、h二、h三、h四、h五、h六、p、dt
  • 块与内联不能并列
    • 块级元素与块级元素并列、内嵌元素与内嵌元素并列
注意:
li是块级元素,能够嵌套块级元素(包括ul)。
有些标签是固定的嵌套规则,好比ul包含li、ol包含li、dl包含dt和dd等等。
<textarea>不能够嵌套本身,自行参考该标签在w3School教程上的实例。
这里说明一下,虽然能够可使用display设置block和inline,但以此来定义嵌套关系很显然不严谨。(不知道搜索引擎会不会抓取CSS内容?)

进阶知识
     因为如今本身接触不到HTML5,因此先保留
嵌套错误可能引发的问题
  • 元素开始与结束标签嵌套错误,页面能够在大部分浏览器被正常解析,IE9会出现解析错误
  • 在<p>元素内嵌入<div>等元素形成全部浏览器的解析错误
  • 在<h1>~<h6>元素内嵌入<div>等元素全部浏览器能够解析正常
  • 在<a>元素内嵌入<a>元素会致使全部浏览器的解析错误(a也不可嵌套button,input等交互元素)
  • 在列表元素<li><dt><dd>等插入非列表兄弟元素会致使IE6\IE7的解析错误
其实,这里说解析错误并非很合理,应该是说浏览器解析出来的结果和咱们指望的结果不一致,但 任何的嵌套错误都不会致使页面呈现有很大的出错。
 

最后:
      虽然咱们能够嵌套标签,可是为了提升浏览器的渲染效率,咱们应该尽少的嵌套标签,扁平化。
 
还有
< ul >
    < li >< h4 >< a href = "" >< div ></ div ></ a ></ h4 ></ li >
  </ ul >
以上代码来自Facebook,瞬间以为本身好牛逼!哈哈。