2012-02-19 147 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">.