0

我开始学习 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 模式显示这个网站?最糟糕的是屏幕顶部的边距,这真的很烦人。我很乐意提供有关此问题和解决方案的任何信息。

4

3 回答 3

1

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

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

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

于 2012-05-22T07:17:17.757 回答
0

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

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

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

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

于 2012-05-22T07:05:38.710 回答
0

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

于 2013-04-26T12:54:18.303 回答