2014-02-10 37 views
1

據火狐,我的網頁呈現在「符合標準的模式」使用下面的doctype ...從HTML 4.01切換到'html'時切換DOCTYPE時應該查找什麼?

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

我將其更改爲<!DOCTYPE html>,我看到在頁面的呈現一定的差異。我認爲doctype主要用於驗證器,只要渲染是'標準'而不是'怪癖',但是我猜測我錯了。

我看到的東西像100px高度<img><a>之前是100px高,但現在是105px。如果我現在通過css設置<img>display:block現在很好,但爲什麼不同?再次,據說該頁面已經在標準模式下,而不是怪癖(如果我刪除了4.01 DOCTYPE,它真的會混淆東西,Firefox說它是在怪癖模式)。或者有幾種「標準」模式?我還應該尋找什麼,有沒有一個列表? (我谷歌搜索,所有我發現是一些不贊同的東西,似乎並不適用於我的差異)

+0

HTML 4.01 Transitional是HTML 4.01的一部分,它是*最新* HTML規範以達到推薦狀態;) – Quentin

+0

雖然語言的實際細節在這裏並不重要,但Doctype嗅探基於關於哪些錯誤的啓發式使用不同文檔類型的作者依賴於。 – Quentin

回答

4

4.01過渡與系統標識符觸發almost standards mode在Firefox中。

什麼不同之處幾乎標準模式大致是這樣的:行內框 有沒有非空白文本作爲一個孩子,沒有邊界, 填充,或保證金:

  • 沒有影響線條框的大小(即它們的線條高度 被忽略)
  • 即使它們的字體尺寸較大(如果它們的字體尺寸較大,也不會獲得它們的後代的高度(例如,對於它們的背景)較大的 他們沒有後代,他們被定位在其 基準零高度)

幾乎標準模式,你在你的問題中提到的兩個你需要擔心的只有三種模式。

+0

但是,HTML5稱它們爲怪癖,限制怪癖和無怪異模式,因爲它將它們看作「標準化」 – Alohci

+0

「幾乎標準模式」?那麼我會被定罪!而且這一次我以爲我的頁面正在以標準模式呈現。 – Rodolfo