PHP或Apache是否会影响DTD:在IE7标准模式下呈现XHTML的问题
||
我有一个静态HTML(index.html)和DOCTYPE,它会触发IE7中的标准模式:
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">
<head>
然后,我将页面转换为三个PHP HTML模板:header.html.php,index.php,footer.html.php。而且header.html.php包含上述确切的DOCTYPE。
但是每次我在IE7中声明index.php时,都会使渲染混乱。
我已经使用命令“ 1”在IE7和FF3中进行测试
对于静态html页面,IE7和FF3都给了我CSS1Compat,这是我期望的模式。
但是对于PHP生成的页面,FF3给我CSS1Compat,而IE7给我BackCompat。
我认为这是问题所在:
我已经从IE7下载了该页面,发现DOCTYPE变成没有地址的<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
。
但是在ff3和chrome中下载相同的PHP生成页面时,DOCTYPE正确为<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
当我测试页面时,毫不奇怪,W3C验证器获得的源代码的第一行是# <!-- A customized tag to distinguish different pages --> # <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
。
W3C验证表明第一行为空。
我已经删除了所有静态PHP文件和CSS文件上的BOM,但仍然遇到问题。
这是Apache还是PHP的问题?有人有解决的办法吗?
谢谢。
没有找到相关结果
已邀请:
2 个回复
诉嘎归亮
由于您正在其他浏览器中获取适当的内容,因此我怀疑是某种原因导致IE阻塞,因此将其更改为更加宽松的文档类型。 您是否使用W3C验证程序验证了文档?
氏脑