1

当我使用 PHP Smarty 时发生了一件奇怪的事情。似乎php文件的编码会影响css。

PHP 文件 (ANSI)--test2.php

<?php
include_once("inc/smarty_inc.php");
$smarty->display('test.tpl.htm');

Smarty 文件(ANSI)--test.tpl.htm

<!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">
<head>
    <title>JPR</title>
</head>
<body>
    <div style="width:500px;height:200px; background-color:Red;margin:auto;">
        test
    </div>
</body>
</html>

当这两个文件是 ANSI 时。div 显示在页面的中心。(IE 和 firefox)

当其中一个转换为 utf-8 时。div 显示在页面的左侧。(仅在 IE 中,在 Firefox 中可以)

它有什么问题?如何使用 uff-8 在 IE 中使其正常?

4

1 回答 1

5

您正在使用BOM 将文件保存为 UTF-8,这会导致响应中的第一个字节是字节顺序标记的字节,而不是 doctype。当 IE 没有首先看到 doctype 时,它​​会进入 quirks 模式,其中框模型是不同的。

您需要将其转换为没有BOM 的 UTF-8。这取决于您使用的文本编辑器或转换器。

于 2012-12-05T12:07:42.293 回答