aboutsummaryrefslogtreecommitdiff
path: root/files/zh-tw/web/html/quirks_mode_and_standards_mode/index.html
blob: 165b062b8b6f9d8ee0167af3b879b63b54295e5e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
---
title: 怪異模式與標準模式
slug: Web/HTML/Quirks_Mode_and_Standards_Mode
translation_of: Web/HTML/Quirks_Mode_and_Standards_Mode
---
<p>很久以前,網頁通常有兩種版本:網景(Netscape)的 Navigator 以及微軟(Microsoft)的 Internet Explorer。在 W3C 創立網路標準後,為了不破壞當時既有的網站,瀏覽器不能直接起用這些標準。因此,瀏覽器導入了能分辨符合新規範、或屬於老舊網站的兩種模式。</p>

<p>目前瀏覽器的排版引擎有三種模式:怪異模式(Quirks mode)、接近標準模式(Almost standards mode)、以及標準模式(Standards mode)。在<strong>怪異模式</strong>,排版會模擬 Navigator 4 與 Internet Explorer 5 的非標準行為。為了支持在網路標準被廣泛採用前,就已經建置好的網站,這麼做是必要的。在<strong>標準模式</strong>,行為(期待)由 HTML 與 CSS 的規範描述起來。在<strong>接近標準模式</strong>,有少數的怪異行為被實行。</p>

<h2 id="How_does_Mozilla_determine_which_mode_to_use.3F" name="How_does_Mozilla_determine_which_mode_to_use.3F">瀏覽器如何決定用哪個模式?</h2>

<p><a href="/zh-TW/docs/HTML" title="/zh-TW/docs/HTML">HTML</a> 文件來說,瀏覽器使用文件開頭的 DOCTYPE 來決定用怪異模式處理或標準模式處理。為了確保頁面使用標準模式,請確認你的頁面,如同本範例一樣擁有 DOCTYPE:</p>

<pre class="brush: html">&lt;!DOCTYPE html&gt;
&lt;html&gt;
  &lt;head&gt;
    &lt;meta charset=UTF-8&gt;
    &lt;title&gt;Hello World!&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
  &lt;/body&gt;
&lt;/html&gt;</pre>

<p>範例中的 <code>&lt;!DOCTYPE html&gt;</code> 是所有可用之中最簡單、並由 HTML5 推薦的。HTML 的早期變種也屬於推薦標準,不過今日的瀏覽器都會對這個 DOCTYPE 使用標準模式,就算是已過時的 Internet Explorer 6 也一樣。目前並沒有正當理由,去使用其他更複雜的 DOCTYPE。如果使用其他 DOCTYPE,可能會冒著觸發接近標準模式、或著怪異模式的風險。</p>

<p>請確定把 DOCTYPE 正確地放在 HTML 文件頂端。任何放在 DOCTYPE 前面的東西,如註解或 XML 聲明,會令 Internet Explorer 9 或更早期的瀏覽器觸發怪異模式。</p>

<p>在 HTML5,DOCTYPE 唯一的作用是啟用標準模式。更早期的 HTML 標準會附加其他意義,但沒有任何瀏覽器會用 DOCTYPE 去做模式間互換以外的用途。</p>

<p>另請參閱<a class="external" href="http://hsivonen.iki.fi/doctype/" title="http://hsivonen.iki.fi/doctype/">不同的瀏覽器選擇不同模式</a>的詳細說明。</p>

<h3 id="XHTML">XHTML</h3>

<p>如果你的網頁使用 <a href="/zh-TW/docs/XHTML" title="XHTML">XHTML</a> 並在 <code>Content-Type</code> HTTP 標頭使用 <code>application/xhtml+xml</code> MIME 類型,你不需要使用 DOCTYPE 啟動標準模式,因為這種文件會永遠使用標準模式。不過請注意服務頁面使用 <code>application/xhtml+xml</code> 會令 Internet Explorer 8 出於未知格式之故<a href="/zh-TW/docs/XHTML#Support" title="XHTML">出現下載對話框</a>,支持 XHTML 的第一個 Internet Explorer 版本是 Internet Explorer 9。</p>

<p>如果你的類 XHTML 網頁使用 <code>text/html</code> MIME 類型,瀏覽器會視為 HTML,你就需要 DOCTYPE 啟用標準模式。</p>

<h2 id="What_are_the_differences_between_the_modes.3F" name="What_are_the_differences_between_the_modes.3F">我要如何知道目前是哪個模式?</h2>

<p>在 Firefox,請從右鍵選單選擇<em>觀看頁面資訊</em>,然後查看<em>繪製模式</em></p>

<p>在 Internet Explorer,請按下 <em>F12</em>,然後查看<em>文件模式</em>.</p>

<h2 id="What_are_the_differences_between_the_modes.3F" name="What_are_the_differences_between_the_modes.3F">這些模式有何不同?</h2>

<p>請參閱<a href="/zh-TW/docs/Mozilla_Quirks_Mode_Behavior" title="Mozilla_Quirks_Mode_Behavior">怪異模式的清單</a>還有<a href="/zh-TW/docs/Mozilla/Gecko_Almost_Standards_Mode" title="Gecko 的接近標準模式">接近標準模式的清單</a>之間的差別。</p>