可能重复:
What's up, Doctype?
在Netbeans IDE中创建新文件时,我会在文件的开头获得<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
。
我删除它,我的HTML仍然有用。我想知道那是什么,是否有必要?
谢谢。
答案 0 :(得分:3)
doctype声明不是HTML标记;它是Web浏览器关于页面编写的标记语言版本的说明。
doctype声明引用文档类型定义(DTD)。 DTD指定标记语言的规则,以便浏览器正确呈现内容。
答案 1 :(得分:3)
文档类型声明或DOCTYPE是将特定SGML或XML文档(例如,网页)与文档类型定义(DTD)相关联的指令(例如,特定的正式定义) HTML版本)。
http://en.wikipedia.org/wiki/Document_Type_Declaration
另外,来自W3C:
不只有一种类型的HTML ,实际上有很多种:HTML 4.01 Strict,HTML 4.01 Transitional,XHTML 1.0 Strict等等。所有这些类型的HTML都在各自的W3C规范中定义,但它们也是用机器可读的语言定义的,用于指定HTML类型的法律结构,元素和属性。
答案 2 :(得分:3)
我相信如果您没有指定doctype,浏览器将添加默认值,这就是它的工作原理。添加该行会覆盖默认值以指定您需要该特定标记语言。
答案 3 :(得分:3)
HTML有许多不同的名称变体; XHTML,DHTML等...您的浏览器将尽力确定您的文档所写的变体,但可能并不总是正确。特别是在IE中,如果您没有声明经常导致大部分布局中断的文档类型,它将默认为“怪癖模式”。
声明doctype意味着浏览器不必进行最佳猜测,而是根据与您声明的doctype相关的规范呈现页面。
以下是一些关于某些DTD之间差异的有趣文章:
答案 4 :(得分:3)
说清楚:除非我们关心验证,否则使用doctype的唯一原因是触发标准模式(参见其他评论)。浏览器不区分HTML版本。这就是为什么建议选择尽可能简单的doctype:
<!doctype html>
答案 5 :(得分:0)
Doctype告诉浏览器你在写什么版本的HTML或XHTML,所以它可以按原样对待它。
没有Doctype它会起作用,但浏览器不知道究竟是什么版本。