html常用文本标签的核心在于语义意图:~表达文档层级结构,全页唯一代表主题;是语义段落而非换行工具;和分别表示重要性提升与语气强调,非纯视觉样式开关。

熟练运用 HTML 常用文本标签,不在于记住所有标签名,而在于清楚每个标签的语义意图、默认行为和适用边界——<h1></h1> 不是“最大号加粗字”,<p></p> 也不是“换行工具”。
什么时候该用 <h1></h1>~<h6></h6>,而不是 <strong></strong> 或 CSS
标题标签的核心作用是表达内容层级和文档结构。搜索引擎、屏幕阅读器、开发者工具都依赖它做语义解析。
-
<h1></h1>应全页唯一,代表页面主题(如“用户注册表单”或“2025 年财报摘要”),不是页面顶部最大的视觉文字 - 跳级使用(比如
<h1></h1>后直接<h3></h3>)会破坏大纲,影响可访问性和 SEO - 单纯为了字号/加粗效果,请用
<strong></strong>+ CSS,或直接写样式;滥用<h2></h2>做副标题装饰,会让语义混乱 - 浏览器对
<h1></h1>~<h6></h6>有默认 margin 和 font-size,但这些应视为“合理默认”,而非设计依据;重置或覆盖时优先用 class 控制,避免全局修改
<p></p> 的真实行为:它不只是“分段”,而是“语义段落”
<p></p> 是块级元素,自带上下 margin,且禁止直接嵌套其他块级元素(如 <div>、<code><h2></h2>)。它不是排版橡皮泥。
- 诗句、地址、简历条目等“视觉上分行但逻辑上属于同一段”的内容,不该硬拆成多个
<p></p>;该用<br>在单个<p></p>内换行 - 如果需要去除段落间距,不要用
<span></span>替代<p></p>(<span></span>是行内元素,无语义),而应通过 CSS 重置margin - 在富文本编辑器输出或 CMS 渲染中,常见把连续空行转为多个
<p></p>;需注意后端是否误将列表项、代码块也包裹进<p></p>,导致结构错误
<strong></strong> 和 <em></em> 不是视觉标签,是语义开关
它们和 <b></b>、<i></i> 的关键区别,在于是否传达“为什么加粗/倾斜”。现代开发中,<strong></strong> 和 <em></em> 应优先使用。
-
<strong></strong>表示内容重要性提升(如警告、必填提示),屏幕阅读器会加重语气;<b></b>仅表示“别处没强调,这里要突出显示”,无语义权重 -
<em></em>表示重读或语义转折(如“我不是说*不*去,而是说现在不行”);<i></i>更适合技术术语、外文短语、船名等特殊用法 - 不要为了实现斜体效果而用
<i></i>包裹数学变量(如<i>x</i>),HTML5 推荐用<var></var>;同理,用<cite></cite>标注作品名,而非<i></i>
容易被忽略的兼容性与渲染细节
很多问题出在“看起来一样”,但底层行为不同,尤其在移动端、无障碍场景或旧版浏览器中。
-
<hr>是语义分隔符,不是装饰线;若仅作视觉分割,CSS 的border-bottom更可控;用<hr>时别再设color属性(HTML5 已废弃,应改用 CSS) -
<pre class="brush:php;toolbar:false;"></pre>保留所有空白符,但默认字体是等宽;若用于展示代码,务必配合<code>使用:<pre class="brush:php;toolbar:false;"><code>...</code></pre> -
<small></small>在 HTML5 中定义为“附属细则”(如版权信息、免责声明),不是通用缩字体;它会降低父元素的默认字号,且影响 line-height 计算 - 所有文本标签都受
user-select: none、pointer-events: none等 CSS 影响,调试时注意是否意外禁用了文本选择或焦点
真正熟练,是能在写 <h2></h2> 时下意识问“它下面该接 <h3></h3> 还是 <p></p>”,在加粗一段话前先判断它是“重要警告”还是“只是视觉强调”。语义不是负担,是让代码在多年后仍能被人读懂的最小成本。











