必须唯一且不能嵌套,因其是页面唯一主内容容器,w3c明确禁止被等语义标签包裹;错误写法破坏语义,导致屏幕阅读器跳过导航、seo降权。

语义化标签本身不拖慢页面,但用错标签或强行绑定样式会引发重排、可访问性断裂、SEO权重稀释——解耦不是为了“看起来高级”,而是让浏览器、爬虫、屏幕阅读器和开发者都能按预期工作。
为什么里嵌套
浏览器对 main 和 section 无默认布局影响,但若你在 CSS 中写了 main section { display: grid; },又在 JS 中动态增删 section 节点,就可能触发 layout thrashing:每次 DOM 变更都迫使浏览器重新计算整个 main 的盒模型。
- 真正安全的做法是只对明确的类名做布局声明,比如
.article-grid,而非依赖语义标签层级
-
main 全局唯一,且不能被 article、aside 或 section 包裹——否则大纲树断裂,部分屏幕阅读器会跳过内容
- 如果必须动态插入区块,优先用
display: contents 包裹语义容器(如 <section class="js-dynamic"></section>),让它不参与布局流
用
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!