在我正在开发的网络应用中,在Chrome和Firefox之间进行测试时,我在元素DOM中的位置存在差异。
在Chrome中查看页面时,<head>
标记中的元素似乎放在<body>
中,还有一些空格。在FireFox中查看网站时不会出现这种情况。
什么可能导致像这样的元素错位? http://archives.wsusignpost.com
我正在用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>
答案 0 :(得分:2)
我立足于@Lachlan富有洞察力的答案,并扩展到:

表示在页面上呈现的字节顺序标记符号。在其中有两个,看起来像两个文件(主页面和所需的文件)都使用带有BOM的UTF-8保存,这可能会导致渲染问题(在DOCTYPE之前)。
尝试在编辑器中将文件保存为UTF without BOM
,看看是否能解决问题。
答案 1 :(得分:1)
服务器响应的前两行是:
<!DOCTYPE html>
<html>
不完全确定
在那里做了什么,但我怀疑你的PHP require()
包含了一些奇怪的东西。您的页面在保存后会完全崩溃TextMate ---所以肯定是不正常的。