Việc không chọn, hoặc chọn nhầm DOCTYPE sẽ dẫn đến việc trình duyệt không nhận biết được Web Document của bạn có tuân theo W3C Standard hay không để hỗ trợ. Vì vậy cho dù bạn đã làm đúng, nghĩa là dù bạn viết XHTML/CSS đúng, dù bạn sử dụng W3C Standard Document Object Model (DOM) để tác động vào các Element trong Document, thì Web Site của bạn vẫn hiển thị sai.
DOCTYPE là gì?
Mỗi tiêu chuẩn HTML và XHTML đều có một DOCTYPE (Document Type Declaration) để khai báo khi được kiểm tra rằng phiên bản HTML hoặc XHTML đang được bạn sử dụng. DOCTYPE, thường được đặt ở đầu mỗi Web Document, là thành phần chính của các Web Document chuẩn mực. Thiếu DOCTYPE, markup mà bạn viết và CSS sẽ không được kiểm duyệt.
DOCTYPE còn là yếu tố cơ bản để các Web Document được render và sử dụng được các tính năng một cách chính xác trong các trình duyệt chuẩn mực, như là Mozilla, IE5 trên Mac, và IE6 trên Win.
Một DOCTYPE thường gồm một đường dẫn cụ thể để khai báo với Browsers cái quy chuẩn mà Browser sẽ dựa vào đó để được render theo các chuẩn mực đúng tiêu chuẩn, và HTML hoặc XHTML, CSS, DOM sẽ được sử dụng đúng như các mà bạn muốn chúng sẽ được sử dụng.
Không chọn hoặc chọn nhầm DOCTYPE sẽ khiến các Web Browser xem như là Web Document của bạn được viết theo kiểu cũ, viết sai, gọi chung là “Quirks” mode. Theo đó, các Web Browser sẽ xử lý trang Web của bạn làm sao đó để nó tương thích ngược với các phiên bản của các trình duyệt này, và làm theo cách riêng của chúng. Vì thế, Web Documents của bạn sẽ được hiển thị khác nhau trên các trình duyệt khác nhau. Rõ ràng, đây không phải là điều bạn muốn, nhưng nó thường là cái bạn sẽ có được, vì hậu quả nặng nề của việc không chọn hoặc chọn sai DOCTYPE.
Sử dụng DOCTYPE như thế nào?
Vì các DOCTYPE là giúp cho Web Browser biết được các chuẩn mực nào của Web Standard, và vì W3C đã sáng tạo ra Web Standard, nên các DOCTYPE được cung cấp bởi Web Site của W3C. Khi khai báo DOCTYPE, cần phải khai báo đầy đủ đường dẫn đến file .dtd trên Web Site của W3C, không nên khai theo đường dẫn tương đối.
Ví dụ không nên khai như vầy:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
Thay vì vậy, phải khai như vầy:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
1 số DOCTYPE phổ biến
HTML 4.01 Strict, Transitional, Frameset
- <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “http://www.w3.org/TR/html4/strict.dtd”>
- <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
- <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Frameset//EN” “http://www.w3.org/TR/html4/frameset.dtd”>
XHTML 1.0 Strict, Transitional, Frameset
- <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
- <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
- <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Frameset//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd”>
XHTML 1.1 DTD
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">