可能重复:
What's up, Doctype?
在我的浏览器中,我查看了我已经制作的html页面的页面源代码,并注意到了
<html>
是红色字体,表示存在错误。
我之前添加了这个:
<!DOCTYPE html>
现在它似乎不是红色字体。
问题是......当我没有doctype时,我的页面外观与以前不同。
问题是,是不是可以声明doctype并仍然保留我的页面样式?
答案 0 :(得分:3)
不要编写有效的HTML以删除验证错误。编写有效的HTML,以便始终如一地为所有客户端呈现。
如您所说, 无法保留您网页的样式,而不指定doctype指示用户代理如何解释以下代码。
话虽如此,您撰写的标记可能与您上面引用的标记更符合其他文档类型。
答案 1 :(得分:1)
在一些(实际上是很多)浏览器(如IE)中,如果你没有放置doctype(Quirks Mode - Wikipedia),渲染将会大不相同(请注意我的大量使用)。
在任何情况下,最好的办法是每次添加一个。获取类似TextExpander的内容,以便更容易输入。
就像记得每天早上刷牙一样,这是另一种应该是强制性的习惯。
另外,请考虑每次使用HTML5 DocType(您使用的那个)。
答案 2 :(得分:1)
标准规定所有文档都应具有文档类型定义 - doctype(文档类型)声明。 W3定义了您可以使用的list of doctypes。
正如您所发现的,添加错误的 doctype会产生一些有趣的后果。因此,根据您的文档所遵循的内容提供正确的文档类型非常重要。
请参阅详细信息this excellent article。
答案 3 :(得分:1)
不仅有一种类型的HTML,实际上有很多种:HTML 4.01 Strict,HTML 4.01 Transitional,XHTML 1.0 Strict等等。所有这些类型的HTML都在它们各自的W3C specifications中定义,但它们也是用机器可读的语言定义的,用于指定HTML类型的法律结构,元素和属性。
这种定义称为“文档类型定义”,或简称为DTD。
为什么要指定doctype?
因为它定义了您的文档实际使用的(X)HTML 版本,这是处理文档的某些工具所需的关键信息。
例如,指定文档的doctype可让您使用Markup Validator等工具检查(X)HTML 的语法。如果这些工具不知道您正在使用何种文档,则无法使用这些工具。
但最重要的是,对于大多数浏览器系列而言,doctype声明会使大量猜测变得不必要,从而触发“标准”渲染模式。
答案 4 :(得分:1)
Doctype定义了您的文档实际使用的(X)HTML版本,这是处理文档的某些工具所需的关键信息。
http://www.w3.org/QA/Tips/Doctype
阅读上述链接后,您可以确定是否正确。 :)