Php DOM中的元素顺序Chrome和FireFox之间的差异?

Php DOM中的元素顺序Chrome和FireFox之间的差异?,php,firefox,dom,google-chrome,Php,Firefox,Dom,Google Chrome,在我正在开发的一个web应用程序中,当在Chrome和Firefox之间进行测试时,我发现元素在DOM中的位置有所不同 在Chrome中查看页面时,标记中的元素似乎与一点空白一起放在中。在FireFox中查看站点时不会显示此信息 什么会导致元素的错误放置 我正在用PHP生成页面,从MySql数据库中提取数据 db.php包含在header.php中,它包含在index.php header.php: <?php require('db.php'); ?> <!DOCTYPE

在我正在开发的一个web应用程序中,当在Chrome和Firefox之间进行测试时,我发现元素在DOM中的位置有所不同

在Chrome中查看页面时,
标记中的元素似乎与一点空白一起放在
中。在FireFox中查看站点时不会显示此信息

什么会导致元素的错误放置

我正在用PHP生成页面,从MySql数据库中提取数据

db.php
包含在
header.php
中,它包含在
index.php

header.php:

<?php require('db.php'); ?>
<!DOCTYPE html>
<html>
    <head>
        <title>The Signpost: Archives</title>
        <meta name="keywords" content="..." />
        <meta name="title" content="..." />
        <meta name="description" content="..." />
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

        <link href="style.css" rel="stylesheet" type="text/css" />

    </head>
    <body>
        <div id="container">
            <a href="http://www.wsusignpost.com">
                Main Signpost Website
            </a>
            <h1>
                <img id="banner" src="..." \>
            </h1>

路标:档案馆

服务器响应的前两行是:

<!DOCTYPE html>
<html>
ïïïïï?

我不完全确定那是什么,但我怀疑你的PHP
require()
包含了一些奇怪的东西。您的页面保存后,会完全崩溃TextMate,所以某些事情肯定不正常。

我基于@Lachlan的深刻回答,并在此基础上展开:


表示页面上呈现的字节顺序标记符号。其中有两个文件(主页和必需的文件)似乎都是用UTF-8和BOM一起保存的,这可能会导致呈现问题(出现在DOCTYPE之前)。
尝试在编辑器中将文件保存为
UTF而不带BOM
,看看这是否解决了问题。

可能与开发工具有关,因为如果查看源代码(我的意思是Ctrl+U),代码是正确的(很抱歉前面的评论,我搞错了lol)是的,源代码在查看源代码时看起来确实正确。奇怪的是,渲染仍然不同。它确实是BOM。谢谢你指出这一点!看来是时候找一个更好的文本编辑器了……没必要,只需将新文档的首选项设置为UTF格式,而不带BOM:)谢谢您指出这个问题。修复它(按照@Damien的回答)是我的解决方案。