应使用标签语义化分段,配合margin-block、line-height和text-indent控制排版;禁用模拟分段,因其无语义、损害可访问性与seo,且导致移动端行高不稳定。

直接用 <p></p> 标签分段,配合 margin-block、line-height 和 text-indent 控制呼吸感与缩进,比堆 <br> 或嵌套 <div> 更可靠——后者会破坏语义、干扰屏幕阅读器,还可能被浏览器自动闭合导致结构错乱。
<h3>为什么不能靠 <code><br> 换行来“分段”
一段 400 字全塞在单个 <p></p> 里,只靠多个 <br> 拆行,等于告诉浏览器:“这是一整块不可分割的内容”。结果是:
- 屏幕阅读器连续朗读,用户无法跳过无关段落
- 搜索引擎难以提取关键信息点,SEO 权重下降
- 移动端默认 line-height 不稳定,文字挤成一团
-
<br>是行内换行,不是语义分隔符;它不该承担段落逻辑职责
<p></p> 的正确切分粒度
每个 <p></p> 应对应一个完整语义单元,比如:
- 一个问题描述(“为什么点击按钮没反应?”)
- 一个解决步骤(“检查
onclick是否绑定到正确元素”) - 一个注意事项(“注意:Vue 中需用
@click,而非原生onclick”)
避免把“背景介绍 + 操作步骤 + 报错截图说明”全塞进一个 <p></p><div class="aritcle_card flexRow artxards">
<div class="artcardd flexRow">
<a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill6712" title="Wechat HTML Publisher"><img
src="https://img.php.cn/upload/skill/000/000/081/179109368394970.jpg" alt="Wechat HTML Publisher" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a rel="nofollow" href="/xiazai/skill6712" title="Wechat HTML Publisher" class="overflowclass">Wechat HTML Publisher</a>
<p class="overflowclass">直接上传HTML富文本到微信公众号草稿箱。支持完整的HTML格式,无需Markdown转换。</p>
</div>
<a rel="nofollow" href="/xiazai/skill6712" title="Wechat HTML Publisher" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
</a>
</div>
</div>。段落长度建议控制在 3–5 行(PC 端约 60–80 字),过长会降低扫视效率。
CSS 必设的三项排版控制
仅依赖 <p></p> 默认 margin 很危险——CSS 重置、框架样式或浏览器差异都可能导致段间距消失。必须显式声明:
-
margin-block: 1.2em;:统一上下间距,比单独设margin-top/margin-bottom更健壮 -
line-height: 1.6;:无单位数值,随字体大小缩放,响应式友好 -
text-indent: 2em;:首行缩进,注意它基于父级font-size,不随子元素<strong></strong>变化而偏移
禁用 padding 替代段间距——那是往段落“肚子”里塞墙,不是在段落之间留路。
超长无空格内容(如 JSON、路径、base64)怎么不撑破容器
这类文本默认不换行,<p></p> 会直接横向溢出。解决方案要按场景区分:
- 若需保留原始格式(如代码片段):改用
<pre class="brush:php;toolbar:false;"><code></code> 组合,并加 <code>white-space: pre-wrap;</code></pre> - 若只是普通文本中混有长 token(如
/api/v1/users/1234567890abcdef):对包裹它的<p></p>设overflow-wrap: break-word;(现代写法)或兼容旧浏览器的word-break: break-word; - 绝对不要全局给
p设word-break: break-all;——它会把 “JavaScript” 拆成 “Java-Script”,损害可读性
真正难处理的,是语义边界模糊的长文本:比如技术文档里夹着命令、返回值、错误日志三合一的段落。这时候得人工拆解,而不是靠 CSS 强撑——排版再好,也救不了结构混乱的内容。










