ホームページ > 記事 > ウェブフロントエンド > DOCTYPEって一体何なの?ドキュメントモードとは一体何ですか? _html/css_WEB-ITnose
!DOCTYPE
!DOCTYPEとは:
ブラウザが予期されるドキュメントタイプを理解し、それを渡す場所をブラウザに指示できるように、すべてのHTMLドキュメントでDOCTYPEを指定することが非常に重要です。ドキュメント (HTML や .html など) を解析するための仕様 (ドキュメント タイプ定義 DTD)。
HTML 4.01のdoctypeは、HTML 4.01がSGMLに基づいているため、DTDへの参照を必要とします。 HTML 5 は SGML に基づいていないため、DTD を参照する必要はありませんが、ブラウザの動作を標準化するために doctype が必要です (html 5 はこの宣言を簡素化し、統一された標準を使用するようにブラウザに指示することを目的としています。この統一されたどこでできるのか)私は基準を見つけました、
www.w3.org)。 一般的な DOCTYPE は次のとおりです:
HTML4.01 strict:不允许使用表现性、废弃元素(如font)以及frameset。声明:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">HTML4.01 Transitional:允许使用表现性、废弃元素(如font),不允许使用frameset。声明:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">HTML4.01 Frameset:允许表现性元素,废气元素以及frameset。声明:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">XHTML1.0 Strict:不使用允许表现性、废弃元素以及frameset。文档必须是结构良好的XML文档。声明:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">XHTML1.0 Transitional:允许使用表现性、废弃元素,不允许frameset,文档必须是结构良好的XMl文档。声明: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">XHTML 1.0 Frameset:允许使用表现性、废弃元素以及frameset,文档必须是结构良好的XML文档。声明:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">HTML 5: <!doctype html>HTML5 の !doctype は大文字と小文字を区別しません 私の DW のデフォルトの宣言テンプレートは次のとおりです:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
私の Webstrom のミディアムデフォルトのテンプレートは次のようなものです:
すごいです
最新のブラウザでは、さまざまなモードが必要です。
インターフェース構造が混乱しないように、古代の HTML インターフェースを提示するだけでなく、
W3C 標準インターフェースも提示する必要があります:1: 標準の表示方法is---標準モード(
strict
)、 2: 非標準の表示方法---奇妙なモード(未定義のdoctypeやdoctypeerrorなど)はインターフェースを変更します。 )、
3: 標準と非標準の両方を表示可能 (移行ドキュメント タイプ定義transitional)
HTML 3.21997年1月14日
HTML 4.0
1998年5月24日
HTML 4.01 1999年12月24日 |
|
| 仕様 |
ドラフト/提案 |
| 推奨
|
| XHTML 1.0 リビジョン
2002 年 8 月 1 日
XHTML 1.1 | 2001年5月31日 | XHTMLモジュール |
| XHTML モジュール 1.1 | 2006 年 7 月 5 日 |
| XHTML Basic |
|
XHTML Basic 1.1
| 2006年7月5日 |
|
XHTML イベント
| 10 月 14 , 2003
| |
XHTML イベント 2
| 2007 年 2 月 16 日
| |
XHTML Print
| 2006 年 9 月 20 日
| |
XHTML メディア タイプ
| 2002年8月1日
| |
XForms 1.0
| 2003 10 3月14日
| |
| 2007年2月22日
| |
| 2006 年 7 月 26 日
| |
| 2001 年 6 月 27 日
| HLink |
2002年9月13日 |
!DOCTYPE切换也许是让浏览器进入正确呈现模式并正确显示网页的一种有效手段,前提是你注意到了各种浏览器的不一致,并能积极主动地避免各种问题。 一般来说 !DOCTYPE后面会有一个包含命名空间的html标签:
<html xmlns="http://www.w3.org/1999/xhtml">
xmlns是XHTML namespace的缩写。 额外资料:文档模式 参考自:打开 文档模式也回影响到文档类型, a265da8503a0eb6e52e38f05f330c642与1a309583e26acea4f04ca31122d8c535结伴影响文档模式 ; 所有IE浏览器在默认情况下(a265da8503a0eb6e52e38f05f330c642与1a309583e26acea4f04ca31122d8c535均没有),是采用怪异模式(Quirks);当有1a309583e26acea4f04ca31122d8c535时,均采用浏览器版本对应的标准模式(如IE8就采用IE8标准模式,IE11就采用IE11标准模式)。 现在要注意的是,当出现a265da8503a0eb6e52e38f05f330c642时,文档模式将会如何呢?我们首先了解一下IE11下它的content属性值范围吧,具体范围如下: IE=5、IE=7、IE=EmulateIE7、IE=8、IE=EmulateIE8、IE=9、IE=10、 IE=11、 IE=Edge 1. IE=5:表示采用怪异模式; 2. IE=7等纯数字的值:表示采用对应IE版本的标准模式,即使不是以1a309583e26acea4f04ca31122d8c535作为文档第一行,文档模式依旧使用标准模式; 3. IE=EmulateIE7等含EmulateIE字符串的值:表示采用模拟对应IE版本的模式,如果是以1a309583e26acea4f04ca31122d8c535作为文档第一行则采用该版本的标准模式,否则采用怪异模式。 4. IE=Edge:表示采用浏览器自身版本的文档模式,如IE11,以8b05045a5be5764f313ed5b9168a17e6作为文档第一行则采用IE11标准模式,否则采用怪异模式。
IE的怪异模式:
1:DOCTYPE写错了, 2:DOCTYPE没有写, 3:DOCTYPE前面有别的字符; .... 实例:
_____<!DeeeeeeeeeeeOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitionaleeeeeeeeee//EN" "http://www.ssssssssw3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>无标题文档</title></head><style>body{ margin:0; padding:0; width:1000px; padding:200px;}</style><body> <div id="div0"></div> <script> function getStyle(el, prop) { return el.currentStyle[prop]; }; var node = document.createElement("div"); node.innerHTML = document.compatMode ;// document.body.appendChild( node ); node = document.createElement("div"); node.innerHTML = document.getElementsByTagName("body")[0].offsetWidth; document.body.appendChild( node ); </script></body></html>
IE兼容模式开启的话, 相对于当前的界面会以IE5.5的方式进行渲染,如果IE浏览器以IE5.5的方式进行解析, 会导致以下问题;
ドキュメントモードに関する参考資料: open |