浏览器在Quirks模式下显示网站

时间:2012-05-22 06:59:33

标签: php browser quirks-mode

我开始学习OOP和PHP模式,我在使用MVC时遇到了一些麻烦。 我有以下文件:

的index.php

<?php
    include_once("controller/controller.php");

    $controller = new Controller();

    $controller->view->display();
?>

Controller.php这样

<?php
    class Controller
    {
        public $view;

        public function __construct()
        {
            include_once("view/view.php");
            $this->view = new View();
        }
    }
?>

view.php

<?php
    class View 
    {
        public $layout = "layout/layout.html";

        public function display()
        {
            include $this->layout;
        }
    }
?>

的layout.html

<!DOCTYPE HTML>
<html>
  <head>
    <meta charset="utf-8">
    <title>Dokument bez tytułu</title>
    <style>
      body {
        background-color:#0066CC;
        margin:0;
        padding:0;
      }
      #page {
        background-color:#000;
        width:960px;
        height:650px;
        margin:0 auto;
      }
    </style>
  </head>
  <body>
    <div id="page"></div>
  </body>
</html>

任何人都可以解释为什么浏览器以Quirks模式显示此网站?最糟糕的是屏幕顶部的边距,这真的很烦人。 我很高兴有关此问题和解决方案的任何信息。

3 个答案:

答案 0 :(得分:1)

它看起来像一个有效的HTML5 DOCTYPE。

确保您的PHP文件在开始<?php之前没有任何无关的空格或换行符。在文本编辑器中,确保将它们保存为UTF-8 而不用 BOM。在Windows上,默认情况下,许多文本编辑器将插入BOM(字节顺序标记),这可能导致垃圾作为文件的第一行发送到屏幕。 DOCTYPE之前的任何内容都将触发怪癖模式。

另外,我认为style标记应为<style type="text/css">

答案 1 :(得分:0)

如果您没有包含完全正确的DOCTYPE信息,则Quirks模式是默认模式。 <!DOCTYPE HTML>不会削减它。

http://www.quirksmode.org/css/quirksmode.html

显然我所知道的一切都是错的,因为在阅读此链接后,显然任何 doctype都应该触发严格模式。

This link非常棒,特别是附录,试图了解跨浏览器是否在这里工作。

答案 2 :(得分:0)

将上面的php标记放在上面。 doctype需要位于文件之上,以便IE不进入怪癖模式。