<!DOCTYPE>的作用是什么?

3

可能是重复问题:
HTML:DOCTYPE的功能是什么

您好

我是初学者,是一个.asp Web开发人员,

我找到了许多关于DOCTYPE的文章,但我没有得到一个完整的想法..

1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 的用途是什么?

2. 我的经典asp页面中是否需要使用它?

6个回答

4
声明告诉浏览器要使用哪个版本的 HTML 来渲染页面。例如,如果您使用 XHTML Strict,则不使用 /> 关闭 meta 标签将导致页面无法验证。
因此,它基本上让浏览器知道在渲染页面时要使用哪个规则集。
编辑:该 doctype 将在 xhtml transitional 中呈现页面。我是一名 PHP 开发人员,但我认为您需要在 ASP 中包含 doctype。

2
嗯,有点道理。文档的doctype描述了文档的元素和属性规则给任何解释器,但是它在大多数情况下被浏览器忽略,只有一个例外:存在“现代”doctype会触发“标准”模式,而旧的或缺失的doctype会触发“怪异”模式,这通常只影响浏览器的默认CSS规则。例如,在HTML4和XHTML之间切换doctype不会导致浏览器以不同方式解析HTML。但是,在大多数浏览器中,将文档发送为HTML mime-type与XML(或XHTML)mime-type触发不同的呈现。 - eyelidlessness
感谢您的更正,eyelidlessness。我一直认为它对浏览器的影响要比实际情况大得多。 - Olical
1
因为我匆忙且疲惫地写了上一条评论,所以需要澄清一下。切换到“quirks”模式可能会改变DOM树从HTML中解析的方式,以及可用的Javascript和CSS功能类型。在IE中,这种变化最为明显,还有一个额外的变化:盒模型被改变了。IE的“quirks”模式本质上是IE 5.5渲染引擎(这意味着从6开始,IE已经保持了5.5兼容模式;8将保持所有先前版本的模式,返回到5.5 除了 6)。 - eyelidlessness
进一步的细节请参考:http://www.quirksmode.org/css/quirksmode.html 和 http://www.cs.tut.fi/~jkorpela/quirks-mode.html - eyelidlessness

3

文档类型声明告诉浏览器你正在使用哪个版本的HTML。

http://www.w3schools.com/tags/tag_doctype.asp

这非常重要,因为您的浏览器不会对相同的html代码执行相同的操作。并且尊重文档类型声明很重要:

  • 从SEO角度来看,机器人是用来读取您的html代码的,所以最好完美无缺。

  • 浏览器将更好地、更快速地进行渲染。

  • 如果您不遵守规则,就会出现一些奇怪的错误。

文档类型声明是关于客户端的,所以与您的服务器端技术没有任何关系:

客户端:JavaScript / CSS / HTML

服务器端:PHP / ASP / ASP.NET / Java

如果您是初学者,您必须充分理解这一点。您将需要学习两个方面并尝试独立学习它们。


2
是的,你确实需要一个文档类型声明--它会强制浏览器对你的HTML布局应用一些规则。如果没有文档类型声明,浏览器将使用默认模式进行渲染,不同浏览器的默认模式不同,这意味着在某些浏览器中你的页面将显示不正确。如果指定了文档类型声明,你大多数情况下都可以忽略这个问题。
目前有大约六七种常用的文档类型声明,但老实说,现在最好使用的是HTML5文档类型声明:
<!DOCTYPE html>

是的,就这么简单--你不需要doctype中的其他垃圾;只需要这个。这就足以强制所有浏览器进入最新的符合标准的模式。


IE(不包括9)在处理这种<doctype>时表现得有点愚蠢,但是它们在追赶9方面非常快,呵呵 :) - balexandre

0
指定DOCTYPE也有助于减少不同主流浏览器之间的不一致性。这是专业网站开发中的一个重要因素,但需要注意的是,指定DOCTYPE并不总能确保浏览器遵循所有规则。浏览器只会尽最大努力去跟随它所能理解的内容,直到你发现还需要通过其他方法来解决某些问题。
至于是否“需要”指定DOCTYPE,答案是肯定的,如果你正在创建一个专业的网站或将被众多人使用的系统。但是,如果你只是为了娱乐、作业或学校练习而进行编写,则它只是网站开发中最佳实践清单的一部分。但我强烈建议即使是初学者,也要在网页中尽早加入DOCTYPE。

0

这更像是一个HTML问题,如果您在跳入编程经典ASP以生成HTML之前有更多制作静态HTML文件的经验,那么您可能已经遇到过了。

  1. 不同的文档类型可能会给您的HTML布局带来不同的结果。 请参考:http://www.w3schools.com/tags/tag_doctype.asp

  2. 您需要它。没有文档类型的HTML页面将默认为旧式怪癖模式,稍后使用起来可能会很令人沮丧。

希望这可以帮助到您!


-3

DOCTYPE 不是必要的,它是一个网页(不是ASP、PHP或其他)中的可选元素,只有帮助浏览器呈现和使用正确的呈现模式。

doctype声明不是HTML标记;它是对网页编写的标记语言版本的指示,供Web浏览器使用。

由于您是初学者,HTML代码(在任何Web浏览器中呈现的代码)分为两个主要区域。

<html>
   <head>
      // Everything here is to help the browser to display the correct design
   </head>

   <body>
      // Everything here will show in the user display
   </body>
</html>

<doctype>被添加到<html>标签之前,代表"嘿,浏览器,这是我编写代码的方式,请遵循这个标准"

这就像你看到一名海军军官的肩章一样......在民间世界中,它是一件可选的事情,但是如果你看到某人戴着它,你对这个人的接近方式会非常不同,你可能不会说"嘿,怎么了",而是说"你好"。

这就是关于标准的一切。


<doctype> 的重要性在于为用户浏览器中呈现同样的内容提供了更多的方式。1990年代,我们只了解 <html> ,而 <br><br /> 之间没有区别。即使到今天,浏览器渲染引擎也不关心打破空格标签,但其他人可能会关心,如 <img alt="" src="" ><img alt="" src="" />

然后,有 HTML 和 XHTML 之间的区别,尽管它们都是 XML 语言变体,但 XHTML 更加严格,例如,所有标记都需要关闭,因此您确实需要写 <br/>

希望我能帮助您理解 <doctype> 标签 :)


你是在告诉一个初学者不需要doctype吗?拜托! - remi bourgarel
这是一个可选元素!它不是必需的,请阅读文档!最新的浏览器将自动从正在使用的代码中选择要使用的DTD。这一切都关乎验证,而不是呈现,我可以为您创建一个在任何浏览器中以相同方式呈现的页面,而无需任何<doctype> - balexandre
我刚刚阅读了文档。当w3c说“不要忘记”时,我认为这不是可选的。当你在使用Web技术时,你永远不会认为每个人都有最新的浏览器,你会像他们都在使用iE6一样思考。 - remi bourgarel
不,你不能让它以相同的方式呈现,元素的默认样式(例如)取决于文档类型。 - remi bourgarel
1
HTML不是XML的变体,DOCTYPE在有效的HTML4和HTML5文档中是必需的。 - Alohci
1
@Alohci 你刚才给我点了个踩,但其实我说的跟你一样,这只是为了验证而不是渲染。 - balexandre

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接