可能重复:
怎么了,Doctype?
在我的浏览器中,我查看了我已经制作的 html 页面的页面源代码,并注意到
<html>
是红色字体,表示有错误。
我在它之前添加了这个:
<!DOCTYPE html>
而且它现在似乎不是红色字体。
问题是......我的页面的外观现在与以前不同,当时我没有文档类型。
问题是,不声明 doctype 并仍然保留我页面的样式是否可以?
可能重复:
怎么了,Doctype?
在我的浏览器中,我查看了我已经制作的 html 页面的页面源代码,并注意到
<html>
是红色字体,表示有错误。
我在它之前添加了这个:
<!DOCTYPE html>
而且它现在似乎不是红色字体。
问题是......我的页面的外观现在与以前不同,当时我没有文档类型。
问题是,不声明 doctype 并仍然保留我页面的样式是否可以?
不要编写有效的 HTML 以消除验证错误。编写有效的 HTML 以便将其一致地呈现给所有客户端。
如您所说,如果不指定指示用户代理如何解释以下代码的文档类型,则无法保留页面的样式。
话虽如此,您编写的标记可能比您上面引用的更符合另一种文档类型。
在某些(实际上是相当多的)浏览器(例如 IE)中,如果您不输入 doctype( Quirks Mode - Wikipedia ) ,渲染将完全不同(请注意我的使用剧烈)。
在任何情况下,最好的办法是每次添加一个。获取 TextExpander 之类的内容,以便更轻松地输入。
就像每天早上记得刷牙一样,这是另一个应该成为强制性的习惯。
此外,请考虑每次都使用 HTML5 DocType(您使用的那个)。
HTML 不仅仅是一种类型,实际上还有很多:HTML 4.01 Strict、HTML 4.01 Transitional、XHTML 1.0 Strict 等等。所有这些类型的 HTML 都在其各自的W3C 规范中定义,但它们也以机器可读的语言定义,指定一种 HTML 类型的合法结构、元素和属性。
这样的定义称为“文档类型定义”,或简称为 DTD。
为什么要指定文档类型?
因为它定义了您的文档实际使用的(X)HTML版本,这是处理文档的某些工具所需的关键信息。
例如,指定文档的 doctype 允许您使用诸如标记验证器之类的工具来检查(X)HTML的语法。如果这些工具不知道您使用的是哪种文档,它们将无法工作。
但最重要的是,对于大多数浏览器系列来说,一个 doctype 声明会使很多猜测变得不必要,从而触发“标准”渲染模式。
Doctype 定义了您的文档实际使用的 (X)HTML 版本,这是处理文档的某些工具所需的关键信息。
http://www.w3.org/QA/Tips/Doctype
阅读上面的链接后,您可以决定它是否可以。:)