我创建了两个线程here和 here关于该Internet Explorer在怪癖模式下工作并打破了布局。经过一番调查后,我发现不知何故php弄得一团糟。
例如,如果我运行下面的代码作为web服务器IE上的html页面正确解析它。我使用小型CMS,所以如果我将代码分为三部分让我们说标题主页脚(CMS结合它们)然后IE显示怪癖模式,布局中断。 php文件的html输出与下面的相同。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<style type="text/css" media="screen">
body{
font: 11px Tahoma, Verdana, Arial, sans-serif;
color: #707070;
background: #8c2727 url('../img/bgr_red.png') repeat-x;
}
a {
color:#bc2828;
text-decoration:none;
font-weight: bold;
outline: none;
}
#wrapper{
position: relative;
width: 960px;
margin: 70px auto;
background-color: #fff;
border: 1px solid red;
}
</style>
</head>
<body>
<div id="wrapper">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
</body>
</html>
我相信问题出在CMS中。但什么可能打破了doctype?
编辑: 这是Fiddler的截图
答案 0 :(得分:3)
很可能在doctype之前有一些输出到浏览器。
确保:
<?php
开标签...在任何正在解析以生成输出的文件中。
答案 1 :(得分:2)
如果浏览器以不同的方式处理这两个页面,那么它们之间会有一些差异,即使在“查看源代码”时它并不是立即显而易见的。
我建议使用Fiddler等工具查看服务器提供的实际页面内容。
编辑:您会发现“RAW”和“HEX”标签比“TextView”更重要。以“Raw”开头并比较“Content-Length”标题,然后查看“HexView”以查看更改内容。