Strage html代码行为

时间:2012-04-11 08:31:52

标签: php html

我有一个非常奇怪的问题:

我的网站引擎使用php。当页面创建时,我查看它的HTML代码(使用broswer的菜单“请参阅源代码html”),我看到了这一点(我在这里只是代码的重要部分):

<div class="main_page_blogs_post2_item1">

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

但REAL 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>代码均未受到影响。

它可能是什么?

由于

P.S。抱歉英语不好:)

3 个答案:

答案 0 :(得分:2)

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

有3个步骤:

  1. 您的服务器代码
  2. 生成的html
  3. 您的浏览器对它的影响(=您在firebug中看到的内容)

答案 1 :(得分:0)

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

答案 2 :(得分: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错误免费并使用the w3c validator进行测试。根据经验,不要在不关闭它们的情况下使用<p>标记,也不要将它们包裹在其他块标记周围。