0

我有一个很奇怪的问题:

我的网站引擎使用 php。创建页面时,我查看它的 HTML 代码(使用 broswer 的菜单“查看源代码 html”),我看到了这个(我只放了代码的重要部分):

<div class="main_page_blogs_post2_item1">

            <div><p><p>
    <div class="cblui_image_contaner_" align="center">

但真正的 html 代码与源代码不同 - 当我使用 firebug 查看这段代码时,我看到了这段代码:

<div class="main_page_blogs_post2_item1">
<div>
<p></p>
<p> </p>
<div class="cblui_image_contaner_" align="center">

我的意思是结束</p>标签会自动添加到 html 代码中,我不知道为什么。我认为它是 javascript,但我尝试在禁用 javascript 的情况下重新加载页面 - 它没有帮助。我不认为这是 php 的错,因为源代码是正确的。

UPD:我发现,在我的情况下,2 个开始<p>标签和 2 个结束</p>标签已转换为<p></p>组合。所有其他<p>标签均未受到影响。

可能是什么?

谢谢

PS对不起英语不好:)

4

3 回答 3

2

Firebug 在浏览器中显示真实生成的代码。这可能与从您的服务器发送的 html 不同(已更正,略有更改)。

有3个步骤:

  1. 您的服务器代码
  2. 生成的html
  3. 你的浏览器是怎么做的(=你在萤火虫中看到的)
于 2012-04-11T08:37:53.567 回答
0

Firebug 显示已更正的源。这意味着它会添加缺失的标签。查看真实 html 的正确方法是在浏览器中“查看源 html”。

于 2012-04-11T08:39:23.020 回答
0

虽然打开<p>标签在技术上是可以的,但我的猜测是浏览器在遇到下一个块标签时会自动关闭它们。使用<br/>标签添加换行符,或向<p>节点添加文本。

浏览器可以处理如下输入:

<p>Lorem ipsum
<p>Foobar text

并会自动将其解释为已阅读

<p>Lorem ipsum</p>
<p>Foobar text</p>

因此,您的代码

<div>
<p><p>
<div> ....

变成:

<div>
<p></p><p></p>
<div> ....

尝试设置一个 HTML 文档类型并坚持它的 html/xml 规则。使您的 html 无错误并使用w3c 验证器对其进行测试。根据经验,不要在未<p>关闭标签的情况下使用标签,也不要将它们包裹在其他块标签上。

于 2012-04-11T13:17:06.137 回答