HTML元素嵌套约束分为:严格嵌套约束、语义嵌套约束两种。
【严格嵌套约束】—— 在所有的浏览器下都不被允许;
- inline-Level 元素,仅可以包含文本或其它 inline-Level 元素;
- <a>里不可以嵌套交互式元素<a>、<button>、<select>等;(经chrome测试<a>包含<button>可以正常运行)
- <p>里不可以嵌套块级元素<div>、<h1>~<h6>、<p>、<ul>/<ol>/<li>、<dl>/<dt>/<dd>、<form>等。
【语义嵌套约束】—— 语义嵌套约束,浏览器大多会容错处理,生成的文档树可能相互不太一样。
- <li> 用于 <ul> 或 <ol> 下;
- <dd>, <dt> 用于 <dl> 下;
- <thead>, <tbody>, <tfoot>, <tr>, <td> 用于 <table> 下;