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