误用div和span、标题层级混乱、滥用strong与em、列表使用不当是常见HTML语义化错误。应优先使用header、nav、article等语义标签;保持h1至h6逻辑递进;按语义选用strong、em、b、i;列表用于结构化内容,避免为样式滥用标签。坚持内容决定标签,借助Lighthouse等工具检测,提升可访问性、SEO与维护性。

HTML语义化错误会降低网页的可访问性、影响SEO效果,并让代码难以维护。要避免这些问题,关键在于理解标签的真实含义,而不是仅根据视觉表现来选择标签。下面列举常见的语义化使用错误及对应的避免方法。
误用div和span代替语义化标签
很多开发者习惯用<div>和<span>实现所有结构,忽略了HTML5提供的语义化元素。
- 用<div class="header">代替<header>——应使用<header>表示页眉
- 用<div class="nav">代替<nav>——主导航区域应使用<nav>
- 用<div class="article">代替<article>——独立内容如博客文章应使用<article>
- 用多个<div>包裹侧边栏——应使用<aside>表示附属内容
正确做法:优先使用<main>、<section>、<article>、<aside>、<footer>等语义标签组织页面结构。
标题层级混乱
标题标签(h1-h6)不仅影响样式,更体现内容结构。常见错误包括:
立即学习“前端免费学习笔记(深入)”;
- 跳级使用,如h1后直接用h4
- 一个页面多个h1(在HTML5中,每个<article>可有一个h1,但主页面仍建议只保留一个主h1)
- 为了视觉效果用CSS放大h3当h1用,却不改标签
正确做法:保持逻辑递进,h1代表页面主题,后续按结构逐级下降。可用工具检查标题层级是否合理。
错误使用和
<strong>表示重要性,浏览器通常加粗显示;<em>表示强调,通常斜体。错误用法:
- 仅为了加粗用<strong>——应使用CSS控制样式
- 忽略语义,所有强调都用<b>或<i>
正确做法:根据语义选择标签。需要强调语气用<em>,重要内容用<strong>。<b>和<i>仅用于短语需要突出但无强调意义的情况,如产品名、术语。
列表和段落使用不当
列表应表达结构化信息,而非单纯换行或排版。
- 用<br>实现多行地址——应使用<p>或<address>
- 导航菜单不用<ul>——导航项是列表,应包裹在<ul><li>中
- 将非列表内容套上<li>只为样式——违背语义原则
正确做法:成组的同类项用<ul>或<ol>;联系信息用<address>;段落用<p>分隔完整句子。
基本上就这些。坚持“内容决定标签”,结合辅助工具(如Lighthouse、axe)检测语义问题,能有效避免常见错误。语义化不是形式主义,而是为用户和机器更好理解内容打基础。











