2012-05-22 123 views
0

我開始學習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> 

任何人都可以解釋我爲什麼瀏覽器顯示本網站中的怪癖模式?最糟糕的是屏幕頂部的邊緣,這真的很煩人。 我很樂意收到有關此問題和解決方案的任何信息。

+1

瀏覽器收到的原始HTML和HTTP頭是什麼? – deceze

+0

在div內插入'&nbsp'並在css中使用邊框來查看它們的顯示方式。當你說Quirks模式時,錯誤是什麼,CSS沒有得到應用? –

回答

1

它看起來像一個有效的HTML5 DOCTYPE。

確保您的PHP文件在打開<?php之前沒有任何多餘的空格或換行符。在你的文本編輯器中,確保你將它們保存爲UTF-8 而沒有 BOM。在Windows中,默認情況下,許多文本編輯器會插入一個BOM(字節順序標記),這可能會導致垃圾作爲文件的第一行被髮送到屏幕。 DOCTYPE之前的任何內容都會觸發怪癖模式。

而且,我認爲style標籤應<style type="text/css">

+0

好吧,似乎你是正確的關於BOM。 ** deceze **詢問原始HTML和HTTP標頭,這裏是:[link](http://i.imgur.com/7BFT0.jpg)任何想法如何解決它?我刪除了所有空格 – user1409508

+0

是的,在一個不錯的文本編輯器中打開它(假設這是Windows,請嘗試Notepad ++),並將編碼設置爲「不帶BOM的UTF-8」。然後重新保存該文件。如果這是正確的答案,請將其標記爲已接受。謝謝:-) – Jhong

+0

哇,現在看起來不錯!感謝** Jhong **和** deceze **求助。 – user1409508

0

如果不包含完全正確的DOCTYPE信息,怪癖模式是默認模式。 <!DOCTYPE HTML>不會削減它。

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

顯然,我知道這一切都是錯誤的,因爲閱讀此鏈接後,顯然任何 DOCTYPE都應該嚴格的觸發模式。

This link是非常棒的,特別是附錄,試圖瞭解跨瀏覽器是否在這裏工作。

+0

是不是HTML5文檔類型? – Jhong

+0

<!DOCTYPE HTML>是一個完全有效的文檔類型,它表示HTML5。 (剛剛看到你的編輯,所以我撤銷我的downvote) – GordonM

0

把你的PHP代碼上方。 doctype需要位於文件的頂部,以便IE不會進入怪異模式。