标签内不能嵌套块级元素,浏览器会静默闭合并将非法子元素移出,导致dom结构与预期不符、css选择器失效、js查询失败;其content model仅允许phrasing content(如文本、、等),须用或等容器替代。

标签不能嵌套块级元素,这是结构错误的根源——浏览器不会报错,但会立刻闭合 <p></p> 并把非法子元素移出,导致你写的结构和实际 DOM 完全对不上。
为什么 <p></p> 里放 <div> 或 <code><ul></ul> 就失效
<p></p> 的 content model 只允许 phrasing content:文本、<strong></strong>、<em></em>、<img>、@#@#@#@#@#@#@#@#@#@0,它会明确标出 <code>Element div not allowed as child of element p 这类错误
esbenp.prettier-vscode + bradlc.vscode-tailwindcss 插件,部分 Linter 会提示非法嵌套document.body.innerHTML 和服务端吐出的字符串,差异点往往就是嵌套违规位置











