1

我的网站都是 php 页面,因为它都是数据库的东西。但是,我无法将页面置于无怪癖模式......我做了常规的事情:

<!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">

这不起作用。如果我用相同的代码创建一个 html 页面,它当然可以工作。

所以这让我相信我只能在 html 页面中关闭怪癖模式?也许这是一个愚蠢的问题,我不需要在 php 页面中关闭 quirks 模式?.. 请帮助,<form>不断打破一条线,我已经尝试了多个修复,但我认为它与该网站处于怪癖模式。

4

4 回答 4

2

不管页面是如何呈现的,PHP 或静态的。我怀疑您的问题出在 doctype 声明中。您确定 php 在 doctype 之前没有输出任何字符,例如换行符吗?

于 2009-09-21T15:50:50.997 回答
0

您的 PHP 脚本可能会输出一些 Content-Type 标头,告诉浏览器该页面是 doctype 指定的其他格式。我不确定浏览器应该如何解决这种冲突。我也不确定您如何设置 PHP 以输出 Content-Type 标头,但如果您查看 PHP 手册中的headers,您可能会走上正确的轨道。该设置也可能在您的 Web 服务器配置中。

于 2009-09-21T15:58:39.577 回答
0

如果你在做 XHTML,你不应该在 doctype 上面有一个 XML 声明吗?

<?xml version="1.0" encoding="UTF-8"?>
<!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">

此外,如果您使用 XHTML,请确保内容类型是text/xml而不是 text/html. 这是一个常见的错误。XHTML 是 XML 并且必须按原样提供,否则大多数浏览器将忽略该声明并采用 quirks 模式。

(更好的是,不要使用 XHTML,使用 HTML5。)

如果这不能解决问题,我认为 Pete Michaud 的想法一定是正确的。检查查看源代码以查看实际发送到浏览器的内容。

于 2009-09-21T15:59:34.210 回答
0

是的,显然我将代码添加到了错误的页面。我应该添加它的页面有冲突的代码。所以谢谢,它现在可以工作了.. 愚蠢的分页符仍然存在,无论我应用什么 css,都喜欢创建新行,但至少该网站现在是标准化的。谢谢大家!

于 2009-09-21T16:08:32.850 回答