浏览器在怪癖模式下显示网站


Browser display website in Quirks mode

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

索引.php

<?php
    include_once("controller/controller.php");
    $controller = new Controller();
    $controller->view->display();
?>

控制器.php

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

查看.php

<?php
    class View 
    {
        public $layout = "layout/layout.html";
        public function display()
        {
            include $this->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 模式显示此网站?最糟糕的是屏幕顶部的边距,这真的很烦人。我很高兴提供有关此问题和解决方案的任何信息。

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

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

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

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

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

显然

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

这个链接非常棒,尤其是附录,可以尝试了解跨浏览器是否在这里工作。

把你的php标签放在上面。 文档类型需要位于文件顶部,以便IE不会进入怪癖模式。