用于语义独立的完整段落,仅限同一段内换行;至须严格层级递进且全页唯一;表示主题分隔而非装饰,三者共同构建清晰、可访问、seo友好的基础排版结构。

直接用 <p></p>、<h1></h1> 到 <h6></h6>、<br>、<hr> 这几个标签就能撑起绝大多数基础排版,不需要 CSS 也能看得清、分得明。
什么时候该用 <p></p> 而不是 <br>
关键看语义是否独立:一段完整意思(比如一句话或几句话组成的观点)就用 <p></p>;同一段话里想换行(比如诗歌、地址、简历中的技能列表),才用 <br>。
常见错误是把多行简介全塞进一个 <p></p> 里再狂打 <br>,结果语义丢失、SEO 友好度下降、屏幕阅读器也读成“一整坨”。
-
<p></p>是块级元素,自带上下 margin,浏览器会自动加空行 -
<br>是行内换行,不产生新段落,间距小得多 -
<p></p>里不能嵌套<div>、<code><h2></h2>等块级标签(HTML5 允许嵌套部分语义化标签,但别嵌套布局容器)<h1></h1>到<h6></h6>的层级和 SEO 影响标题不是“字号越大越醒目”就乱用——
<h1></h1>应该全页唯一,代表页面核心主题;<h2></h2>是它的直接子模块;<h3></h3>是<h2></h2>的子项,以此类推。跳级(比如
<h2></h2>后直接写<h4></h4>)或堆砌(一页多个<h1></h1>)会让搜索引擎和辅助技术困惑,实际影响收录和可访问性。- 现代浏览器默认给
<h1></h1>–<h6></h6>加粗 + 缩放字号 + 上下留白 - 不要用
<h2></h2>单纯为了“比<p></p>大一点”,而要用它表达结构关系 - CMS 或框架生成的页面常偷偷插入额外
<h1></h1>(比如页眉 logo 包了<h1></h1>),需检查源码
<hr>和视觉分隔线的实际用途<hr>不是装饰线,而是语义上的“主题切换”。它表示前后内容属于不同逻辑单元,比如章节之间、评论区与正文之间、表单区块之间。滥用
<hr>(比如每两行文字就加一条)反而稀释语义,还可能被屏幕阅读器读作“horizontal rule”,打断阅读流。-
<hr>是自闭合标签,写成<hr>或<hr>都行,但别写<hr> - 它默认宽度 100%、居中、带阴影,CSS 可覆盖,但语义不变
- 替代方案?用
<section></section>+ CSS 边框更灵活,但若只做简单静态页,<hr>最轻量
容易被忽略的细节:空格、换行、注释处理
HTML 源码里的换行、缩进、多个空格,在渲染时几乎全被浏览器合并为一个空格——这不是 bug,是规范行为。所以靠敲回车或空格对齐文本,基本无效。
真正控制排版节奏的,还是标签语义本身:
<p></p>分段、<h2></h2>分节、<hr>分区。注释<!-- -->虽不渲染,但能帮你快速定位区块,尤其在多人协作或后期维护时。- 别在
<p></p>开头或结尾手动加来“留空”,那是 hack,且易出错 - 注释不能嵌套,
<!-- <!-- --> -->会导致后续代码被注释掉 - 用注释标记区块边界(如
<!-- 主体内容开始 -->)比靠肉眼数缩进靠谱得多
- 现代浏览器默认给











