DOCTYPE là gì?


174
  • DOCTYPE là gì và tại sao tôi muốn sử dụng nó?
  • Các DOCTYPE khác nhau tôi có thể sử dụng là gì?
  • Sự khác biệt giữa chế độ tiêu chuẩn và chế độ quirks là gì và một số quirks tôi có thể gặp phải với các DOCTYPE được đặt khác nhau là gì?

Cuối cùng, DOCTYPE thích hợp mà tôi nên sử dụng là gì?


9
Đây không phải là một wiki?
Alex

Câu trả lời:


76

Về cơ bản, DOCTYPE mô tả HTML sẽ được sử dụng trong trang của bạn.

Các trình duyệt cũng sử dụng DOCTYPE để xác định cách hiển thị trang. Không bao gồm DOCTYPE hoặc bao gồm một cái không chính xác có thể kích hoạt chế độ quirks.

Cái khởi đầu ở đây là, chế độ quirks trong Internet Explorer khá khác với chế độ quirks trong Firefox (và các trình duyệt khác); có nghĩa là bạn sẽ có một công việc khó khăn hơn nhiều , cố gắng đảm bảo trang của bạn hiển thị nhất quán với tất cả các trình duyệt nếu chế độ quirks được kích hoạt, hơn bạn sẽ làm nếu nó được hiển thị ở chế độ tiêu chuẩn.

Wikipedia có một bản tóm tắt sâu hơn về sự khác biệt trong kết xuất khi sử dụng các DOCTYPE khác nhau . XHTML được kích hoạt bởi một số DOCTYPE nhất định và có khá nhiều tranh luận về việc sử dụng XHTML được bao quát tốt trong XHTML - huyền thoại và thực tế .

Có sự khác biệt tinh tế giữa các DOCTYPE kết xuất "tuân thủ tiêu chuẩn" khác nhau, chẳng hạn như DOCTYPE HTML5 ( <!DOCTYPE html>trước HTML5, chỉ được gọi là "doctype mỏng" không kích hoạt kết xuất được tiêu chuẩn hóa trong các trình duyệt cũ hơn) và các DOCTYPE khác như thế này cho HTML 4.01 chuyển tiếp:

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

39
Ngày nay, tôi ủng hộ HTML5 DOCTYPE: <! DOCTYPE html> nó hoạt động trong tất cả các trình duyệt hiện đại, bao gồm IE6.
Walter Rumsby

53
IE6 browsers trình duyệt hiện đại

26

DOCTYPE cho biết tác nhân người dùng đang sử dụng (trình duyệt web, trình thu thập dữ liệu web, công cụ xác thực) loại tài liệu của tệp. Sử dụng nó đảm bảo rằng người tiêu dùng phân tích chính xác HTML như bạn dự định.

Có một số DOCTYPES khác nhau cho HTML, XHTML và Framesets và mỗi trong số này có hai chế độ Nghiêm và Chuyển tiếp. Strict nói rằng đánh dấu của bạn đang sử dụng chính xác các tiêu chuẩn được xác định. Xem trang W3C DTDs để biết thêm chi tiết.

Quirksmode về cơ bản là phương pháp bố trí từ những ngày chiến tranh trình duyệt khi các tiêu chuẩn ít được tôn trọng và xác định hơn. Nói chung, trang chế độ tiêu chuẩn, hợp lệ, sẽ bố trí ổn định hơn trên các trình duyệt khác nhau, nhưng có thể thiếu các tính năng nhất định mà bạn yêu cầu. Một tính năng như vậy là thuộc tính đích của thẻ neo. Các Quirksmode trang web là một nguồn lực lớn cho những khác biệt này.

Một suy nghĩ cuối cùng là tiêu chuẩn HTML5 mới đề xuất sử dụng DOCTYPE rất đơn giản:

<!DOCTYPE html>

Sử dụng DOCTYPE này là một cách tương thích về phía trước để xác định rằng các trang của bạn đang ở chế độ tiêu chuẩn và là HTML. Đây là phương pháp mà Google sử dụng và rất dễ nhớ. Tôi khuyên bạn nên sử dụng DOCTYPE này trừ khi bạn có kế hoạch sử dụng XHTML.


2
Là thẻ DOCTYPE HTML? Nếu vậy, tại sao chúng ta cần điều này để bắt đầu?
Tò mò

2
@vipinkoul thẻ DOCTYPE chỉ định loại tài liệu HTML bạn đang gửi Tác nhân người dùng. Nó có thể là HTML hoặc XHTML hoặc Frameset. Và nó có thể là HTML / XHTML / Frameset hoặc HTML / XHTML / Frameset nghiêm ngặt. Chủ yếu là điều này ảnh hưởng đến cách trình phân tích cú pháp phản ứng khi gặp lỗi.
Cướp

6

Một loại tài liệu xác định phiên bản HTML / XHTML mà tài liệu của bạn sử dụng. Bạn sẽ muốn sử dụng một loại tài liệu để khi bạn chạy mã của mình thông qua các trình xác nhận, trình xác nhận sẽ biết phiên bản HTML / XHTML nào cần kiểm tra. Trang này cung cấp một cái nhìn tổng quan tốt:

Đừng quên thêm một loại tài liệu

Các loại tài liệu phổ biến bạn có thể sử dụng được liệt kê ở đây:

Danh sách đề xuất các DTD

Bạn nên sử dụng loại tài liệu nào tùy thuộc vào mã bạn đang sử dụng, nhưng để có ý tưởng, hãy thử chạy mã của bạn thông qua trình xác nhận W3C và sử dụng menu thả xuống Loại tài liệu trong menu "Tùy chọn khác" để thử các loại tài liệu khác nhau .

Dịch vụ xác nhận đánh dấu W3C


3

Trong HTML (bao gồm XHTML) như được sử dụng trên các trang web, DOCTYPE là một chuỗi kích hoạt một trong một vài chế độ trình duyệt (chế độ quirks, chế độ tiêu chuẩn, chế độ gần như tiêu chuẩn), tùy thuộc vào cách viết chính xác của DOCTYPE. Bạn muốn sử dụng nó để chọn chế độ trình duyệt phù hợp nhất với trang của bạn.

Chính thức, trong SGML và XML, một khai báo DOCTYPE là một tham chiếu đến Định nghĩa loại tài liệu (DTD), trong đó chỉ định các quy tắc cú pháp chính thức của ngôn ngữ đánh dấu. Không có trình duyệt nào đã từng sử dụng DTD cho bất cứ điều gì hoặc thậm chí truy cập chúng. Tuy nhiên, chúng được sử dụng bởi các trình xác thực đánh dấu SGML và XML như Trình xác thực đánh dấu W3C , ngoại trừ trong chế độ HTML5. Do đó, sự lựa chọn của DOCTYPE xác định cách thức trình xác nhận hoạt động nếu tài liệu được gửi tới nó. Tuy nhiên, chế độ hoạt động của trình xác nhận cũng có thể được chọn trong giao diện người dùng của nó. (Bộ xử lý SGML và XML cũng có thể sử dụng DOCTYPE theo nhiều cách khác nhau, nhưng câu hỏi rõ ràng là bị giới hạn trong bối cảnh HTML và các trình duyệt web và phần mềm liên quan chặt chẽ.)

Không có danh sách chính thức của DOCTYPEs. Mỗi đặc tả hoặc bản nháp HTML xác định DOCTYPE hoặc DOCTYPE của riêng nó. Tập hợp các DOCTYPE được trình duyệt nhận dạng khi chọn chế độ khác nhau tùy theo trình duyệt. Trong thực tế, không có lý do nào để sử dụng DOCTYPE ngoài <DOCTYPE html> định nghĩa trong HTML5 , mặc dù HTML5 cũng liệt kê một vài DOCTYPEs kế thừa Bạn có thể sử dụng DOCTYPE đó nếu bạn muốn chế độ tiêu chuẩn (được khuyến nghị cho các trang mới) và không sử dụng DOCTYPE nếu bạn muốn chế độ quirks (mà bạn có thể cần cho các trang kế thừa).

Chế độ Tiêu chuẩn của Phần Lan nói chung có nghĩa là chế độ hoạt động trong đó trình duyệt tuân theo HTML, CSS, DOM và các thông số kỹ thuật khác tốt nhất có thể. Nó thường không có nghĩa là phù hợp đầy đủ. Chế độ của Quirks là khác nhau ở các trình duyệt khác nhau, nhưng nhìn chung nó có nghĩa là một nỗ lực bắt chước hành vi của các trình duyệt rất cũ như IE 5. Mục đích là để giữ cho các trang cũ hoạt động, với giả định rằng chúng có thể dựa vào các tính năng và lỗi trong trình duyệt cũ. Xem mô tả Điều gì xảy ra trong Chế độ Quirks? Lưu ý rằng có một khái niệm khá khác biệt, hạn chế hơn về chế độ quirks của chế độ Hồi giáo trong HTML5, gần giống với tài liệu có tên là Quirks Mode Living Standard .

Một vấn đề điển hình là độ rộng phần tử được tính khác nhau trong chế độ quirks và trong chế độ tiêu chuẩn. Điều này có nghĩa là bố cục của một trang có thể ít nhiều thay đổi hoặc thậm chí bị rối tung hoàn toàn, nếu một trang được thiết kế để hoạt động ở chế độ quirks được xem ở chế độ tiêu chuẩn (hoặc ngược lại).

Vì vậy, bạn nên sử dụng <!DOCTYPE html>cho các trang mới và giữ bất kỳ DOCTYPE nào (nếu có) mà bạn đang sử dụng cho các trang cũ.

Tuy nhiên, chế độ quirks có nghĩa là, trong một số trình duyệt, nhiều tính năng mới của CSS không được hỗ trợ. Điều này có nghĩa là nếu bạn muốn cải thiện một trang cũ bằng một số tính năng CSS3, có thể cần phải chuyển sang DOCTYPE kích hoạt chế độ tiêu chuẩn. Trong trường hợp như vậy, bạn cần xem lại và kiểm tra trang để xem nó có chạy ở chế độ tiêu chuẩn hay không.


Cám ơn các chi tiết phụ, đặc biệt những người thân: «Không có trình duyệt đã từng sử dụng các DTD cho bất cứ điều gì hoặc thậm chí truy cập chúng» và «không có lý do để sử dụng một DOCTYPE khác hơn <DOCTYPE html>như quy định tại HTML5 ».
Arm feet 16/2/2016

2

Các loại tài liệu cho trình duyệt biết ngôn ngữ mà trang được viết bằng ngôn ngữ nào, có thể là HTML hoặc XHTML. Ví dụ,

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

nói với trình duyệt để hiển thị trang như HTML4 strict. Các trình duyệt cũ hơn được sử dụng để hiển thị các trang không chính xác và do đó các trình duyệt mới hơn mô phỏng lỗi của các trình duyệt cũ hơn khi chúng tìm thấy một loại tài liệu cũ.

Hôm nay bạn nên sử dụng ít nhất HTML4 hoặc XHTML tốt hơn.

Một mục blog về doctypes là Sửa trang web của bạn với DOCTYPE đúng! (từ A List Apart ).


1

Trước hết, không có một loại tài liệu nào bạn nên sử dụng, nhưng hầu hết các nhà thiết kế đều cố gắng làm cho nó hoạt động trong XHTML 1.0 Strict.

Một loại tài liệu không có gì khác hơn là một tuyên bố về những thẻ bạn có thể sử dụng trong html của mình (mặc dù các trình duyệt có thể sử dụng nhiều hơn hoặc ít hơn những gì được xác định) Bạn thực sự có thể mở tệp doctype và bắt đầu đọc ( XHTML 1.0 Strict )

Nếu bạn không chỉ định loại tài liệu, trình duyệt sẽ cố gắng hết sức để đoán nhưng không phải lúc nào cũng nhấn đúng loại.

Chế độ quirks chỉ là một kỹ thuật được các trình duyệt sử dụng để tương thích ngược, một ví dụ tuyệt vời về chế độ quirks là cách IE biểu hiện các hộp


1

Một loại tài liệu là một tài liệu mô tả cách thức nội dung của một tài liệu giống như xhtml có thể trông như thế nào (như một trang web). Lưu ý: điều này chỉ xác định cú pháp của trang đã nói, kết xuất của trang KHÔNG được xác định bởi DTD!

Ví dụ: một loại tài liệu có thể xác định cách <table>-tag có thể trông như thế nào - thuộc tính nào nó chấp nhận và giá trị / giá trị nào được chấp nhận cho mỗi thuộc tính. Hãy nghĩ về nó như một từ vựng cho trang web hiện tại của bạn.

Wikipedia có một trang thông tin về các loại tài liệu khác nhau được sử dụng phổ biến. Tâm trí bạn - không có gì ngăn cản bạn tạo ra loại tài liệu của riêng bạn. Tuy nhiên, cơ hội là trình duyệt có thể không biết cách hiển thị tài liệu của bạn.

Việc sử dụng DTD nào phụ thuộc vào những gì bạn sẽ viết. XHTML có một DTD hoàn toàn khác với HTML chẳng hạn.


1

Trên trang web, một loại tài liệu không làm gì khác ngoài việc thông báo cho người xem nếu bạn muốn các tiêu chuẩn, gần như tiêu chuẩn hoặc chế độ quirks.

Những thay đổi trong chế độ quirks phụ thuộc vào trình duyệt: Firefox, Opera, Safari và Chrome triển khai một bộ hạn chế hạn chế, như xóa không gian cho các hậu duệ văn bản trong mã như <table><tr><td><img></td></tr></table>(giải pháp td img { vertical-align:bottom; }:). Mặt khác, IE trở lại công cụ kết xuất trong IE5.5. Điều đó có nghĩa là bạn sẽ không thể sử dụng bất kỳ tính năng mới nào được triển khai từ năm 2000.

Để kích hoạt chế độ tiêu chuẩn, tôi khuyên bạn nên sử dụng loại tài liệu HTML5 <doctype html>, vì nó dễ nhớ nhất.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.