关于doctype语法的问题。而且还需要一些建议

时间:2011-07-26 05:06:11

标签: html html5

        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
             "http://www.w3.org/TR/html4/loose.dtd">

我已经编写了我的HTML,但它并没有按照我想要的方式在所有浏览器中运行。当我浏览谷歌时,我发现doctype应该在每个HTML页面的开头声明。我见过许多wesbites一些使用HTML4 .01和一些人说XHMTL 1.0。和其他一些网站我发现HTML 5.我不知道哪个更好用。我只是从w3schools和其他一些网站上学习这些东西。

有谁能告诉我目前哪个更好而且功能强大?什么是doctype中的过渡性,严格性和宽松性?

      "http://www.w3.org/TR/html4/loose.dtd">

以上代码的含义是什么?如果我有自己的HTMl,我应该把它放在那个地方?或者它应该始终相同http://w3..../请澄清我。提前谢谢你的朋友。

4 个答案:

答案 0 :(得分:2)

HTML 4更适合与旧版浏览器兼容。 “松散”和“过渡”意味着相同的事情:“不严格”,并且在使用某些弃用的属性和元素时使用(例如表示属性)。包含URI的旧doctype声明部分指向声明支持的原始DTD文件的源URI。在这种情况下,http://www.w3.org/TR/html4/loose.dtd是HTML 4.01 Transitional DTD的位置。

HTML5功能更强大,但HTML5的所有新功能都需要额外的东西,比如HTML5 shiv才能在某些浏览器中正常使用。

HTML5 doctype声明为<!DOCTYPE html>。没有PUBLIC关键字或URI,因为这些不是必需的。声明仅用于标准模式。您可以(并且应该)在现有的旧HTML文档中使用HTML5文档类型,即使您不希望因浏览器兼容性而尝试任何新功能,它们仍应进行验证。包括IE6在内的99%的浏览器都了解HTML5 doctype本身的语法,并将以标准模式呈现页面。

答案 1 :(得分:2)

doctype的内容一直很混乱,这就是为什么HTML5将其简化为:

&lt;!DOCTYPE html&gt;

对于DTD或类似的东西没有更多的麻烦或大惊小怪。接下来,我可能会坚持使用这种简化的形式,因为它现在几乎被所有浏览器所识别。

要回答有关loose.dtd文件的问题,它是一个“文档类型定义”文件。这是一个特殊的文件,解释了HTML的格式,一些验证器将使用它来查看HTML文件是否有效。由于有几个版本的HTML(html 4.0,4.01,XHTML 1.0 loose / transitional / strict,XHTML 1.1),每个版本都有不同的DTD。

这就是理论。在实践中,很少使用这种方式。但实际上,doctypes与浏览器开始尝试以一致的方式遵循标准的同时出现。但问题是,浏览器需要某种方式来区分旧的“古怪”网页和新的符合标准的网页之间的区别。这就是DTD真正用于的目的:如果浏览器看到DTD,它认为页面应该使用新规则而不是“怪癖模式”。

根据this Wikipedia page关于这个问题,新的HTML5风格的doctype被认为符合标准(或“几乎”标准兼容)几乎任何相关的浏览器,所以在大多数情况下,混乱已经结束了。

答案 2 :(得分:2)

http://www.w3schools.com/tags/tag_DOCTYPE.asp在某种程度上解释了各种DOCTYPE之间的差异。基本上,如果你选择严格的doctype,你必须编写一个更整洁的HTML / XHTML,因为不允许在body元素,framesets等中直接使用许多笨拙的标记,如文本。

过渡性doctype限制性较小。正如名称所示,松散的doctype的限制性更小。

话说回来,这些天来,HTML5越来越受欢迎,而且它有一个非常简单的doctype。只需<!DOCTYPE html>。如果你刚刚开始学习,那么学习HTML5是值得的,因为它应该更加强大,功能更强大(特别是对于音频,视频,图像等)。

答案 3 :(得分:1)

我不认为这种语法很容易理解。您可能会使用HTML5获得结果:

<!doctype html>