段落“粘连”是因重置CSS清除了p默认margin,导致无呼吸空间;应检查computed styles确认是否为0px,并用p{margin:1em 0}显式设置,避免依赖默认值。

浏览器给 <p></p><div class="aritcle_card flexRow artxards">
<div class="artcardd flexRow">
<a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill10246" title="HTML Text Extract"><img
src="https://img.php.cn/upload/skill/001/246/273/6adaf20dee630206.jpg" alt="HTML Text Extract" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a rel="nofollow" href="/xiazai/skill10246" title="HTML Text Extract" class="overflowclass">HTML Text Extract</a>
<p class="overflowclass">从HTML页面(URL、文件或标准输入)中提取主体内容文本,去除导航、页脚、广告和模板文本。可直接传递给readability_check或其他文本工具。</p>
</div>
<a rel="nofollow" href="/xiazai/skill10246" title="HTML Text Extract" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
</a>
</div>
</div> 设了默认 margin-top 和 margin-bottom,但项目里常引入重置 CSS(比如 normalize.css)或自定义样式,一不留神就把这个 margin 清掉了,导致段落“粘连”——这不是你漏写了缩进,而是段落本身失去了呼吸空间。
检查 computed styles 确认 margin 是否被清零
打开浏览器开发者工具 → 选中目标 <p></p> → 切到 Computed 标签页 → 搜索 margin-top 和 margin-bottom。如果值是 0px,说明确实被覆盖了。
- 别只看 Styles 面板里的规则,有些重置是通过
* { margin: 0; }或body * { margin: 0; }这类宽泛选择器生效的 - 注意
margin-collapse:相邻<p></p>的上下 margin 会合并,不是 bug,是 CSS 规范行为 - 若要等距分隔,改用
padding-bottom: 1em或把父容器设为display: flex; gap: 1em;
显式声明 p { margin: 1em 0; } 更可靠
依赖浏览器默认值风险高,尤其在跨团队、跨框架协作时。直接写死更可控:
p {
margin: 1em 0;
}
-
1em比16px更健壮,随font-size缩放,适配系统字号放大或响应式切换 - 避免用
margin: 0 0 1em 0这种冗余写法,margin: 1em 0已明确上下、左右 - 若需首段顶头(如文章标题后),单独加类:
<p class="no-top-margin"></p>+.no-top-margin { margin-top: 0; }
text-indent 失效?先确认元素是不是块级
text-indent 只对块级元素生效。常见失效场景:
-
<p></p>被设成display: inline或inline-block—— 浏览器不生成“首行盒”,缩进无处作用 - 父容器是
display: flex或display: grid,子<p></p>的块级行为被格式化上下文压制 - 段落开头是
<img>或<svg></svg>这类内联替换元素,缩进发生在该元素左侧,视觉上等于没动 - 某处写了
p { text-indent: 0 !important }(富文本编辑器输出常带这个)
最快验证方式:开发者工具 → Computed → 确认 display 是 block,且 text-indent 最终值不是 0。
中文首行缩进用 2em,别碰百分比和负值
中文排版习惯首行空两字,但单位选错就白搭:
- 用
2em:1em ≈ 当前font-size,缩进随字号变化,移动端、系统放大都稳 - 别用
2ch:IE 不支持,且多数中文字体下 1ch 远小于一个汉字宽度 - 避开
2%:按父容器宽度算,窄屏下缩进可能只剩几像素 - 慎用
2rem:若项目用 JS 动态改html { font-size }(如夜间模式),缩进会意外跳变 - 绝对别用负值或
text-indent: -1em兼容 IE8 —— 它对负值支持极不稳定,尤其配合direction: rtl时容易错位
真正难处理的,从来不是写哪一行 CSS,而是团队里有人用 Prettier 自动删掉 margin、有人在全局样式里塞 * { margin: 0 }、还有人把 <p></p> 塞进 flex 容器还指望 text-indent 正常工作——这些地方不盯紧,样式就永远在“看起来差不多”和“上线崩了”之间反复横跳。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










