การประกาศ Document Type

Document Type Definitions (DTD)
Document Type Definition (DTD) คือ ตัวกำหนดโครงสร้างของเอกสาร ไม่ว่าจะเป็นเอกสาร HTML หรือ XHTML หรือ XML ก็ต้องมี DTD ด้วยกันทั้งนั้น แต่ใน HTML นั้นไม่ได้บังคับว่าต้องประกาศ Doctype
การประกาศ <!DOCTYPE> ก็เพื่อบอกให้เว็บเบราเซอร์์ทราบว่า เว็บเพจของเราใช้ภาษา HTML หรือ XHTML และคำสั่ง HTML/XHTML ที่ใช้เป็นรุ่นใด และบอกชนิดของเอกสาร (Document Type Definition : DTD) ที่ใช้ ซึ่งจะช่วยให้เว็บเบราเซอร์แปลเอกสารได้อย่างถูกต้อง


Document Type Definitions (DTD) ของ XHTML

1. XHTML 1.0 Strict
การเลือก doctype ชนิดนี้ จะต้องเขียนคำสั่งทุกจุดให้ถูกต้องตามมาตรฐานของ XHTML ไม่สามารถใช้ Tag และ Attribute เก่า ที่ W3C ย้ายไปไว้ในส่วน Style Sheet ได้ (เช่น tag <font>) และการตกแต่งเอกสารจะใช้ CSS เท่านั้น ไม่สามารถใส่ Attribute ใน Element ได้ เช่น ไม่สามารถเขียน <body bgcolor="white">...</body> ได้
ที่บรรทัด tag เปิดของ html ให้กำหนดดังนี้ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
This DTD contains all HTML elements and attributes, but does not include presentational or deprecated elements (like font). Framesets are not allowed. The markup must also be written as well-formed XML.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

2. XHTML 1.0 Transitional
การเลือก doctype ชนิดนี้ จะค่อนข้างยืดหยุ่น เรายังสามารถใช้ Tag และ Attribute เก่า ที่ W3C ย้ายไปไว้ในส่วน Style Sheet ได้้้  การตกแต่งเอกสารเราสามารถเขียนเป็น <bgcolor="white">...</body> หรือ เขียนแบบใช้ CSS ก็ได้ <body style="background-color: white;"> แต่ยังต้องเขียนคำสั่งให้ถูกต้องตาม syntax ของ XHTML
This DTD contains all HTML elements and attributes, including presentational and deprecated elements (like font). Framesets are not allowed. The markup must also be written as well-formed XML.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

3. XHTML 1.0 Frameset
เลือกใช้ doctype ชนิดนี้ เมื่อเราจะใช้งาน Framset (เป็นการระบุว่าเอกสาร HTML นั้นใช้เฟรมในการสร้างหน้าเวบเพจแทนการใช้ tag <body>)
This DTD is equal to XHTML 1.0 Transitional, but allows the use of frameset content.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
แล้วเราจะเลือก doctype ชนิดใดดี ถ้าเป็นมือใหม่พึ่งจะหัดทำเว็บ อาจจะเลือกใช้แบบ Transitional เพื่อจะได้ไม่ยากเกินไป แต่สำหรับคนที่ ใช้งาน CSS ได้คล่องแคล่วอยู่แล้ว อาจจะลองใช้แบบ Strict ดูค่ะ

เราไม่จำเป็นต้องพิมพ์ข้อความประกาศ doctype เอง เมื่อเราเลือก New Document ในโปรแกรม Dreamweaver จะมีลิสต์ DocType ให้เราเลือกค่ะ พอเลือกแล้ว โปรแกรมจะ genterate code <!DOCTYPE> ให้เองโดยอัตโนมัติค่ะ
4. XHTML 1.1
This DTD is equal to XHTML 1.0 Strict, but allows you to add modules (for example to provide ruby support for East-Asian languages).
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
แล้วเราจะเลือก doctype ชนิดใดดี ถ้าเป็นมือใหม่พึ่งจะหัดทำเว็บ อาจจะเลือกใช้แบบ Transitional เพื่อจะได้ไม่ยากเกินไป แต่สำหรับคนที่ ใช้งาน CSS ได้คล่องแคล่วอยู่แล้ว อาจจะลองใช้แบบ Strict ดูค่ะ

เราไม่จำเป็นต้องพิมพ์ข้อความประกาศ doctype เอง เมื่อเราเลือก New Document ในโปรแกรม Dreamweaver จะมีลิสต์ DocType ให้เราเลือกค่ะ พอเลือกแล้ว โปรแกรมจะ genterate code <!DOCTYPE> ให้เองโดยอัตโนมัติ
 
;