作者NelsonT (档案清除手 v1.0)
看板Web_Design
标题[文件] DOCTYPE 是做啥用的
时间Thu Nov 4 03:16:10 2004
看到上头有人提到 DTD,就来写些跟 DTD 的东西吧:)
好久以前的某个时候,浏览器们终於明白支援 Web 标准是一定要的啦,
问题是,新浏览器要如何才能兼顾 Web 标准与不合标准的网站呢?
DOCTYPE 就是这种判断机制的开关。
若网页开头有 DOCTYE,代表它会符合标准,所以浏览器要依 W3C 的规格来读网页,
反之,就用旧的方法处理网页。
(一直到 2000 年,浏览器们才开始采用这机制。)
DOCTYPE 切换运作的方式:
* 若有完整 URI 的 XHTML DOCTYPE,则切到标准模式,用 W3C 规则来读
网页里的 CSS 与 XHTML。
* 若有不完整或过时的 DOCTYPE 或没有 DOCTYPE,就切成相容模式,
用传统方法来处理网页。
完整的长得像这样,会让浏览器切到标准模式:
<!DOCTYPE html PUBLIC "-/W3C//DTD XHTML 1.0 Strict//EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
这是 XHTML 1.0 Strict DOCTYPE,还有 Transitional 跟 Frameset DOCTYPE。
不完整的像这样,会切到相容模式:
<!DOCTYPE html PUBLIC "-/W3C//DTD XHTML 1.0 Strict//EN"
"/DTD/xhtml1-strict.dtd">
两者差异只在於前者用绝对路径,後者用相对路径。
当然,这是个正确的网址,你可以连去下载到该份 DTD,
可是浏览器看到它时,不会真的去下载这 DTD,
它只是用来判断要切换成哪种模式罢了。
(另,IE 并不守规矩,网页中只要出现 XHTML DOCTYPE,不论是否是完整网址,
IE 都会切成标准模式。 但为了其他浏览器,建议还是用完整路径)
(但,就算有完整路径,只要网页开头有
<?xml version="1.0" ...?> 这东东
,称为 XML Prolog,IE6就会切成相容模式 =.=)
---------------------------------------------------------------------------
以下列出各 DTD。
XHTML 1.0 Strict 可让所有支援 DOCTYPE 的浏览器切成标准模式,
但是对 Opera 7.0 之前的版本,或 IE6 之前的版本无效。
<!DOCTYPE html PUBLIC "-/W3C//DTD XHTML 1.0 Strict//EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML 1.0 Transitional 让 IE6+/Win 及 IE5+/Mac 切成标准模式。
使第一代 Gecko 浏览器(Mozilla 1.0,Netscape 6)切成标准模式。
使第二代 Gecko 浏览器(Mozilla 1.01,Netscape7+,Chimera 0.6+)切成
近乎标准模式。
对 Opera 7.0 之前的版本,或 IE6 之前的版本无效。
<!DOCTYPE html PUBLIC "-/W3C//DTD XHTML 1.0 Transtitional//EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTML 1.0 Frameset 让 IE6+/Win 及 IE5+/Mac 切成标准模式。
使第一代 Gecko 浏览器(Mozilla 1.0,Netscape 6)切成标准模式。
使第二代 Gecko 浏览器(Mozilla 1.01,Netscape7+,Chimera 0.6+)切成
近乎标准模式。
对 Opera 7.0 之前的版本,或 IE6 之前的版本无效。
<!DOCTYPE html PUBLIC "-/W3C//DTD XHTML 1.0 Frameset//EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 1.1
此规格等同於 Strict,可让所有支援 DOCTYPE 的浏览器切成标准模式,
但是对 Opera 7.0 之前的版本,或 IE6 之前的版本无效。
<!DOCTYPE html PUBLIC "-/W3C//DTD XHTML 1.1EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1.dtd">
HTML 4.01 Strict 会让 IE 切成标准模式,新版的 Gecko 切成近乎标准模式。
<!DOCTYPE html PUBLIC "-/W3C//DTD HTML 4.01//EN"
"
http://www.w3.org/TR/html4/strict.dtd">
但若用完整的 HTML 4.0 DOCTYPE,却会使 IE 跟 Gecko 切成相容模式!
所以讲了这麽多,目前的最佳解就是采用 XHTML (Transitional)。
--
╭───────我收集的免费软体─────────╮
│
http://www.csie.nctu.edu.tw/~chtai/software.php │
╰────────────────────────╯
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.89.77
※ 编辑: NelsonT 来自: 140.113.89.77 (11/04 03:16)
1F:推 TKirby:这篇要推一下 140.112.30.67 11/04
2F:推 eye12006:推荐这篇文章 61.229.50.88 11/04
3F:推 ilovekebi:好文必推 203.204.197.99 11/05
4F:→ nosql:2009年才看到一推 08/06 11:50
5F:→ nosql:啊 还不能推Orz 08/06 11:50