语义化重构应优先使用 header、nav、article、aside、footer 等标签替代无意义 div,main 全局唯一且仅包裹核心内容,section 需配 h2+ 标题,列表结构统一用 ul/ol+li,纯布局 div 可保留。

别再把 div 当万能胶用了。重构不是批量搜索替换,而是先读懂页面在说什么,再给每块内容配对“身份证”——也就是语义化标签。
看 class 名和上下文,判断该不该换
很多 class 名已经暴露了真实意图,直接照着翻译就行:
- class="header"、id="top-nav"、role="banner" → 换成
- class="nav"、aria-label="主导航" → 换成
- class="article"、class="post"、data-type="blog" → 换成
- class="sidebar"、class="related-links" → 换成
- class="footer"、id="copyright" → 换成
- 纯布局用的 div(比如为了 flex 包裹、加 margin、清浮动)→ 留着 div 就行,不强求换
main 和 section 别混用
全局只能有一个,代表当前视图里真正要读的内容。首页有轮播、商品列表、推荐文章?它们不是三个 main,而是用 分开,整体包进一个 里。
常见错误:
立即学习“前端免费学习笔记(深入)”;
- 每个卡片区域都套一个
→ 浏览器会警告,屏幕阅读器可能跳过内层 - 把广告位、登录框塞进
→ 扭曲语义,影响 SEO 和无障碍体验 - section 里没标题(h2/h3)→ 它就只是个空盒子,建议补上标题或改用 div
列表类结构优先用 ul/ol
导航菜单、产品卡片组、步骤说明、标签云,只要内容是并列项或有序流程,就该用列表:
- 外层



















