You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHP echo为何标签自动闭合?Chrome下代码结构异常咨询

问题原因分析

这事儿其实是浏览器的HTML自动纠错机制搞的鬼,核心原因是你违反了HTML的嵌套规范:

HTML标准里明确规定,<p>标签属于「段落容器」,它只能包含行内元素(比如<span>、普通文本),不能嵌套块级元素——而<h2>正好是块级元素。

当Chrome浏览器解析到你写的<p><h2>...</h2></p>这种无效嵌套时,它会自动修正这个错误结构:

  1. 先把未闭合的<p>提前闭合,生成<p></p>;
  2. 正常渲染<h2>1</h2>;
  3. 最后看到剩下的</p>标签,浏览器会自动补一个对应的<p>,于是就出现了末尾的<p></p>。

这就是为什么你实际得到的代码里,<h2>被挤到了两个空<p>标签中间。

修复方案

调整你的HTML嵌套结构,不要把块级元素放在<p>里面,比如改成这样:

$i = 1;
<div class="sampleNumberIndex">
    <h2><?php echo $i; ?></h2>
    <p><!-- 这里放你的段落内容 --></p>
</div>

如果你的需求是让标题和段落关联,完全不需要用<p>包裹<h2>,直接按正确的块级元素顺序排列就可以了,浏览器会正常渲染符合规范的结构。

内容的提问来源于stack exchange,提问作者June

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:36:47