2012-02-19 82 views
10

Tôi sử dụng trình tạo cây tổ chức javascript tuyệt vời có tên "ECOTree" nhưng bản vẽ không hoạt động khi tôi đặt <!DOCTYPE html>. Nhãn trong các hộp không được đặt trong các hộp chính xác."<! DOCTYPE html>" Có nghĩa là gì?

Bạn có thể thấy lỗi tại sample1.htm trên trang web bên dưới. Ai có thể đề nghị tôi làm thế nào để sửa chữa. http://www.codeproject.com/script/Articles/ViewDownloads.aspx?aid=16192

(Để thực hiện theo nguyên tắc dự án của tôi, tôi phải xác định <!DOCTYPE html>)

+6

'' là loại tài liệu cho tài liệu. Về cơ bản nó cho trình duyệt web biết cách hiển thị trang (có các loại tài liệu khác nhau). Nếu trang hiển thị không chính xác với một loại tài liệu chính xác, điều đó có nghĩa là trang không được mã hóa chính xác. – Blender

+5

bản sao có thể có của [What's up, Doctype?] (Http://stackoverflow.com/questions/414891/whats-up-doctype) – animuson

+0

Thaks rất nhiều! Như bạn đã nói, câu hỏi này được nhân đôi một. Tôi sẽ đọc nó (Nó có thể là một khó khăn để tìm mã không được hỗ trợ từ "ECOTree" nhưng tôi sẽ thử nó.) – zono

Trả lời

25

<!DOCTYPE html> là rõ ràng Document Type Declaration.

Từ trang liên kết:

Tuyên bố DOCTYPE (Type Tuyên bố DTD hoặc tài liệu) thực hiện một vài điều:

  1. Khi thực hiện kiểm tra xác nhận HTML trên một trang web nó nói với HTML (Trình đánh giá ngôn ngữ đánh dấu siêu văn bản) mà phiên bản tiêu chuẩn HTML (X) HTML mã hóa trang web được cho là tuân thủ. Khi bạn xác nhận hợp lệ trang web của bạn, trình xác thực HTML kiểm tra mã hóa theo tiêu chuẩn áp dụng, sau đó báo cáo các phần của mã hóa không vượt qua quá trình xác thực HTML (không tuân thủ).
  2. Nó cho trình duyệt biết cách hiển thị trang ở chế độ tuân thủ tiêu chuẩn.

# 2 là lý do rất quan trọng để sử dụng.

<!DOCTYPE html>, cụ thể là correct declaration for HTML5 và nên được sử dụng khá nhiều từ đây đến tương lai gần. Bạn vẫn có thể sử dụng chuỗi cũ hoặc các chuỗi được phép cũ, nhưng định dạng được viết trước đó là tất cả những gì được yêu cầu trong HTML5. Ngoài ra, DTD này sẽ khiến tất cả các trình duyệt hiện đại dead link đến switch to their standards (compliance) mode, ngay cả khi chúng không hỗ trợ HTML5.

Dưới đây là một số thông tin thêm:

Activating Browser Modes with Doctype & Choosing a Doctype (same page)
World Wide Web Consortium (họ làm cho các tiêu chuẩn web)

+1

@thirtydot "[chúng ta nên suy nghĩ cho chính mình khi quyết định trang cụ thể nào là một tham chiếu tốt, không dựa vào tuyên bố về chăn được thực hiện bởi bên thứ 3] (http://meta.stackexchange.com/a/87680)." Nếu một liên kết cung cấp thông tin không chính xác (như liên kết đã làm), và dễ hấp thụ đối với một người rõ ràng không có ý tưởng về chủ đề, thì đó là một liên kết tốt. Liên kết bạn cung cấp giống như bị ảnh hưởng khi đọc sách. Thông tin chất lượng, tôi chắc chắn, nhưng trên mức độ của một bài báo trắng lý thuyết như để hữu ích layman. – rockerest

+0

"' html' là khai báo cho HTML5 "Uh, không, không thực sự. Trong một khai báo DOCTYPE hợp lệ, nó chỉ có nghĩa là phần tử gốc của tài liệu là ''. Trình tự ' 'được lấy toàn bộ bởi thông số HTML5. – BoltClock

+0

Tôi đã xóa liên kết w3schools chủ yếu vì nó thậm chí không * đề cập đến * loại tài liệu HTML5. Vào năm 2012, điều đó không tốt. Liên kết với w3schools gần như không bao giờ là một ý tưởng hay. Thông tin của họ thường thiếu sót một cách nào đó, và thậm chí nếu không, bạn ít có khả năng nhận được upvotes và nhiều khả năng để có được downvotes (kinh nghiệm cá nhân). Để giảm thiểu mối quan ngại của bạn rằng liên kết mà tôi cung cấp quá phức tạp, bạn có thể cập nhật liên kết tới http://hsivonen.iki.fi/doctype/#choosing, liên kết trực tiếp tới phần quan trọng. Cảm ơn bạn đã không trả lời câu trả lời của bạn. – thirtydot

2

“! < DOCTYPE html >” có nghĩa là gì?

Điều đó có nghĩa là trang web của bạn sẽ được hiển thị theo tiêu chuẩn html5, rõ ràng là nếu bạn có thứ gì đó mà trình duyệt không hỗ trợ thì bạn cần sử dụng một polyfill cho điều đó.

13

<!DOCTYPE html>không "Tuyên bố loại tài liệu".

"Tuyên bố loại tài liệu" là khái niệm SGML để báo hiệu cú pháp đánh dấu và từ vựng cho đánh dấu theo sau. <!DOCTYPE html> không tuân thủ các yêu cầu của điều đó. Điều này không giống như <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> là Tuyên bố loại tài liệu phù hợp SGML.

<!DOCTYPE html> không không cho biết tài liệu HTML5.

Mặc dù tài liệu tuân thủ HTML5 trong chuỗi tuần tự văn bản/html được yêu cầu phải có <!DOCTYPE html> khi bắt đầu, nó không tuân theo điều ngược lại. I E. tài liệu có thể có <!DOCTYPE html> khi bắt đầu và không phải là tài liệu HTML5. Ví dụ: dự định tất cả các phiên bản HTML trong tương lai sẽ sử dụng cùng chuỗi ký tự khi bắt đầu. Vì vậy, nó có thể chỉ ra một tài liệu HTML5, hoặc một tài liệu HTML6, HTML7 vv, một tài liệu HTML5 + RDFa-lite, hoặc một tài liệu từ một tiêu chuẩn hoàn toàn cạnh tranh.

Thông số HTML5 mô tả <!DOCTYPE html>"a required preamble" và nó gần gũi hơn với nhãn hiệu.

Đây chỉ là chuỗi ký tự ngắn nhất sẽ yêu cầu các trình duyệt cũ cũng như trong tương lai mà trình duyệt sẽ xử lý HTML của tài liệu bằng chế độ xử lý HTML hiện đại nhất. Nó được chọn làm phần mở đầu phù hợp cho HTML5 vì lý do duy nhất đó.

Nếu nó có thể được cho là có bất kỳ ý nghĩa gì cả, đó là nó chỉ ra rằng tài liệu đã được tạo hoặc được cấu trúc lại lần cuối khoảng năm 2007 hoặc mới hơn. Một lần nữa, trò chuyện không nhất thiết phải áp dụng. Tài liệu không chứa <!DOCTYPE html> không ngụ ý rằng tài liệu được tạo trước bất kỳ ngày cụ thể nào.

+1

Đối với hậu thế: Danh sách các tờ khai loại tài liệu của World Wide Web Consortium (http://www.w3.org/QA/2002/04/valid-dtd-list.html#DTD). Lưu ý rõ ràng rằng '' _is_ Tuyên bố loại tài liệu, mặc dù chưa được chuẩn hóa chính thức. Ngoài ra, liên kết trong câu trả lời ở trên [tuyên bố rõ ràng rằng các DTD khác đã lỗi thời khi tạo tài liệu HTML] (http://www.w3.org/html/wg/drafts/html/master/syntax.html#obsolete-permitted -doctype) – rockerest

0

Nó cho biết phiên bản được viết bằng HTML5. Về cơ bản, đó là hướng dẫn cho trình duyệt web về phiên bản HTML của trang được viết và thậm chí yêu cầu trình duyệt web cách hiển thị trang.

Sau đây là danh sách các HTML DOCTYPE Danh sách khai báo:

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

0

⦁ Các DOCTYPE hạn cho trình duyệt mà loại HTML được sử dụng trên một trang web. Đổi lại, các trình duyệt sử dụng DOCTYPE để xác định cách hiển thị một trang. Không sử dụng DOCTYPE hoặc sử dụng sai DOCTYPE có thể tải trang của bạn ở chế độ Quirks. Xem ví dụ:

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