2012-02-19 82 views
10

我使用了一个名为“ECOTree”的奇妙的JavaScript组织树生成器,但是当我放入<!DOCTYPE html>时,绘图不起作用。盒子中的标签没有正确放入盒子中。“<!DOCTYPE html>”是什么意思?

您可以在下面的网站上的sample1.htm处看到错误。任何人都可以建议我如何解决。 http://www.codeproject.com/script/Articles/ViewDownloads.aspx?aid=16192

(为了跟随我的项目规则,我必须定义<!DOCTYPE html>

+6

'<!DOCTYPE html>'是文档的文档类型。它基本上告诉Web浏览器如何呈现页面(有不同的文档类型)。如果页面使用正确的文档类型进行不正确的渲染,则意味着页面编码不正确。 – Blender 2012-02-19 05:23:33

+5

可能重复[What's up,Doctype?](http://stackoverflow.com/questions/414891/whats-up-doctype) – animuson 2012-02-19 05:31:16

+0

Thaks很多!正如你所说,这个问题是重复的一个。我会阅读它(可能很难找到来自“ECOTree”的不受支持的代码,但我会尝试) – zono 2012-02-19 06:24:35

回答

25

<!DOCTYPE html>是明确Document Type Declaration

从链接页面:

DOCTYPE声明(DTD或文档类型声明)做了几件事情:

  1. 在网页上执行HTML验证测试它告诉HTML (超文本标记语言)验证程序版本的(X)HTML标准网页编码应该符合。当您验证您的网页时,HTML验证程序会根据适用的标准检查编码,然后报告编码的哪些部分未通过HTML验证(不符合)。
  2. 它告诉浏览器如何在符合标准的模式下呈现页面。

#2是使用它的一个非常重要的原因。

<!DOCTYPE html>,具体来说就是correct declaration for HTML5,应该从这里到近期使用。您仍然可以使用传统字符串或过时的允许字符串,但以前编写的格式是HTML5中所需的。还有一点需要注意的是,即使DTD不支持HTML5,该DTD也会导致所有现代浏览器 dead link switch to their standards (compliance) mode

这里有更多的一些信息:

Activating Browser Modes with Doctype & Choosing a Doctype (same page)
World Wide Web Consortium(他们做网页标准)

+1

@thirtydot“[我们应该在决定什么具体页面是一个很好的参考,而不是依赖于第三方所做的全面陈述时自己想想(http://meta.stackexchange.com/a/87680)。”)。如果一个链接提供的信息不是不正确的(如链接所做的那样),并且对于明显不知道该主题的人很容易吸收,那么这是一个很好的链接。你提供的链接就像是一本书一样受到打击。质量信息,我敢肯定,但在理论白皮书的层面上,对于外行的有用性。 – rockerest 2012-02-19 07:37:50

+0

“'html”是HTML5的声明“呃,不,不是。在有效的DOCTYPE声明中,它只是表示文档的根元素是''。序列'<!DOCTYPE html>'是HTML5规范的整体。 – BoltClock 2012-02-19 12:39:25

+0

我删除了w3schools链接,主要是因为它甚至不提* HTML5文档类型。在2012年,这是不好的。链接到w3schools几乎不是一个好主意。他们的信息往往以某种方式存在缺陷,即使不是这样,你不太可能获得高薪,也更可能获得低价(个人经历)。为了减轻您对我提供的链接过于复杂的担忧,您可以更新http://hsivonen.iki.fi/doctype/#choosing的链接,该链接直接指向重要部分。谢谢你不回滚你的答案。 – thirtydot 2012-02-19 14:33:36

2

“!< DOCTYPE HTML >”是什么意思?

这意味着您的网页将按照html5标准进行渲染,显然如果您有某种浏览器不支持的东西,那么您需要使用polyfill。

13

<!DOCTYPE html>而不是“文件类型声明”。

“文档类型声明”是一种SGML概念,用于表示后续标记的标记语法和词汇。 <!DOCTYPE html>不符合要求。这不同于<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">,它是符合SGML的文档类型声明。

<!DOCTYPE html>确实不是表示HTML5文档。

尽管文本/ html序列化中符合HTML5的文档在开始时需要有<!DOCTYPE html>,但并不表示反之亦然。即一个文档在开始时可以有<!DOCTYPE html>,而不是HTML5文档。例如,所有将来的HTML版本都会在开始时使用相同的字符序列。因此,它可能表示HTML5文档或HTML6,HTML7等文档,HTML5 + RDFa-lite文档或来自完全竞争标准的文档。

HTML5规范将<!DOCTYPE html>描述为"a required preamble",这更接近标记。

这只是最短的字符序列,它会请求传统浏览器以及浏览器使用其最现代的HTML处理模式处理HTML文档。仅仅因为这个原因,它被选为HTML5的合格序言。

如果可以说它有任何意义,那就表示该文档是在2007年左右或更晚的时候创建或最后重构的。同样,反过来也不一定适用。不包含<!DOCTYPE html>的文件并不意味着该文件是在任何特定日期之前创建的。

+1

后人:万维网联盟[文档类型声明列表](http://www.w3.org/QA/2002/04/valid-dtd-list.html#DTD)。明确指出'<!DOCTYPE html>'_is_文档类型声明,但尚未正式标准化。另外,上述答案中的链接[明确指出其他DTD在创建HTML文档时已过时](http://www.w3.org/html/wg/drafts/html/master/syntax.html#obsolete- permitted -doctype) – rockerest 2013-09-17 17:28:38

0

它告诉版本,即页面是用HTML5编写的。 基本上,它是网页浏览器关于写入页面的HTML版本的指令,甚至告诉Web浏览器如何呈现页面。

以下是HTML DOCTYPE声明列表的列表:

http://www.w3.org/QA/2002/04/valid-dtd-list.html

0

⦁术语DOCTYPE告诉其HTML的类型在网页上使用的浏览器。反过来,浏览器使用DOCTYPE来确定如何呈现页面。无法使用DOCTYPE或使用错误的DOCTYPE可能会以怪癖模式加载您的页面。请参阅示例:

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