默认上下外边距导致空白,本质是css而非html;禁止嵌套块级元素;align已废弃,须用text-align;非段落内容勿滥用。

为什么直接写 <p></p> 会多出空白?
因为浏览器默认给 <p></p> 加了上下外边距(margin-top: 1em 和 margin-bottom: 1em),不是你写错了,是它本来就这样。这个“空白”本质是 CSS 默认样式,不是 HTML 本身产生的空行。
- 即使段落里只有一两个字,
<p>好</p>也会占一整行并上下留空 - 连续写两个
<p></p>,比如<p>A</p> <p>B</p> <p><span>立即学习</span>“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)</a>”;</p>,实际渲染出的间距 ≈ 2em(上一个的下边距 + 下一个的上边距),不是 1em - 想彻底去掉空白?用 CSS:
p { margin: 0; }—— 但别全局清,容易破坏语义结构
嵌套 <div> 或 <code><h2></h2> 会怎样?
会触发 HTML 解析警告,甚至被浏览器自动修正——比如把 <p></p>
<div>xxx</div>
<p></p>
<div>xxx</div>
<p></p>,内容“掉出来”了。
-
<p></p>只能包含行内元素:<span></span>、<a></a>属性吗?不能。
<img alt="html中p标签用法详解_html中p标签怎么用【指南】" >是 HTML4 就废弃的属性,HTML5 完全不支持。现在写<strong></strong>,浏览器会忽略它,毫无效果。- 正确做法是用 CSS:
<div> 或统一写在 <code><ul></ul>里 - 注意:
<h1></h1>控制的是**段落内文字**对齐,不是整个<h6></h6>块在页面中的位置(那得靠<p></p>或 Flex/Grid) - 中文排版常见需求如首行缩进,要用
<p></p>,不是靠空格或align - 短标签/说明文字,优先考虑
<p style="text-align: center"></p>+ CSS;需要块级表现就用<style></style> - 想换行但不要段落语义?用
text-align,别写<p></p>冒充空行 - 诗句、代码、地址等需保留换行和空格的文本,用
margin更合适,text-indent: 2em会把所有换行和多余空格压成一个空格
什么时候不该用
align?当内容不是真正意义上的“段落”时——比如按钮文字、导航项、表格标题、单行说明、纯图标配文。硬套
<p align="center"></p>会污染语义,影响 SEO 和屏幕阅读器理解。最常被忽略的一点:段落语义不是装饰,而是结构信号。搜索引擎、语音助手、无障碍工具都依赖它判断内容主次。写对
<pre class="brush:php;toolbar:false;"></pre>不是为了“看起来像段落”,而是为了让机器也读得懂你在讲什么。 - 正确做法是用 CSS:










