บทความนี้อธิบายองค์ประกอบของ doctype อย่างเป็นระบบ ในเวลาเดียวกันข้อมูลจำนวนมากได้รับการตรวจสอบ เนื่องจากข้อมูลบนอินเทอร์เน็ตค่อนข้างยุ่งฉันจึงนิยามใหม่หลังจากการรวบรวมและการเรียงลำดับ ตัวอย่างเช่นคำจำกัดความขององค์ประกอบ doctype ส่วนใหญ่แบ่งออกเป็นความรู้พื้นฐานและความรู้ขั้นสูง ความรู้พื้นฐานอธิบายความรู้พื้นฐาน ความรู้ขั้นสูงมากมายมาจากอินเทอร์เน็ตส่วนใหญ่เป็นเทคนิคการปฏิบัติ
Doctype เป็นตัวย่อของประเภทเอกสาร องค์ประกอบ <! doctype> ใช้เพื่อประกาศการประกาศประเภทเอกสารของหน้า (DTD) การประกาศองค์ประกอบนี้ตั้งอยู่ที่ด้านหน้าของเอกสารและอยู่ก่อนแท็ก <html> ด้วยการยืนยัน DTD ของหน้าคุณยังสามารถกำหนดข้อกำหนด W3C (เช่น HTML หรือ XHTML ข้อมูลจำเพาะ) ที่หน้าใช้
ควรแนะนำการแปลข้อกำหนด W3C ที่ถูกต้องสำหรับ W3C (คำแนะนำ W3C) ในสายตาของนักออกแบบหลายคน W3C เป็นมาตรฐาน อย่างไรก็ตามหลายคนมีความเข้าใจเพียงเล็กน้อย ต่อไปนี้มีการระบุไว้ในข้อกำหนด HTML และข้อมูลจำเพาะ XHTML ในข้อกำหนด W3C ปัจจุบัน เราจะอธิบายความสัมพันธ์ระหว่าง HTML และ XHTML ในภายหลัง:
| ข้อมูลจำเพาะ | แนะนำ |
HTML 3.2 | 14 มกราคม 1997 |
html 4.0 | 24 พฤษภาคม 2541 |
HTML 4.01 | 24 ธันวาคม 2542 |
| ข้อมูลจำเพาะ | ร่าง/ข้อเสนอ | แนะนำ |
XHTML 1.0 | 26 มกราคม 2543 | |
XHTML 1.0 การแก้ไข | 1 สิงหาคม 2545 | |
XHTML 1.1 | 31 พฤษภาคม 2544 | |
โมดูล XHTML | 10 เมษายน 2544 | |
โมดูล XHTML 1.1 | 5 กรกฎาคม 2549 | |
XHTML พื้นฐาน | 19 ธันวาคม 2543 | |
XHTML BASIC 1.1 | 5 กรกฎาคม 2549 | |
กิจกรรม XHTML | 14 ตุลาคม 2546 | |
กิจกรรม XHTML 2 | 16 กุมภาพันธ์ 2550 | |
XHTML พิมพ์ | 20 กันยายน 2549 | |
ประเภทสื่อ XHTML | 1 สิงหาคม 2545 | |
xforms 1.0 | 14 ตุลาคม 2546 | |
xforms 1.0 (SE) | 14 มีนาคม 2549 | |
xforms 1.1 | 22 กุมภาพันธ์ 2550 | |
XHTML 2.0 | 26 กรกฎาคม 2549 | |
xlink | 27 มิถุนายน 2544 | |
hlink | 13 กันยายน 2545 |
XHTML ถือได้ว่าเป็นข้อกำหนด HTML ล่าสุดและเป็นแอปพลิเคชัน XML ที่สามารถย้ายได้อย่างราบรื่นจาก HTML 4.01 ขั้นตอนแรกใน W3C refactoring HTML 4.01 เข้าสู่ XML นำไปสู่การเกิดของ XHTML 1.0 XHTML 1.0 ขึ้นอยู่กับความหมายที่จัดทำโดยแท็ก HTML 4.01
ไฟล์หน้าประกาศ DTDs ที่แตกต่างกันผ่านองค์ประกอบ <CocType> เพื่อบอกเบราว์เซอร์ว่าข้อมูลจำเพาะ HTML หรือ XHTML ที่หน้าปัจจุบันเป็นไปตาม รายการต่อไปนี้เฉพาะ DTD ที่เกี่ยวข้องกับข้อมูลจำเพาะ HTML4.01 และ XHTML1.0:
HTML 4.01 ระบุสามประเภทเอกสาร: เข้มงวด, เปลี่ยนผ่านและเฟรม
หากคุณต้องการเครื่องหมายที่สะอาดเพื่อหลีกเลี่ยงความสับสนในเลเยอร์การนำเสนอให้ใช้ประเภทนี้ โปรดใช้กับแผ่นสไตล์ cascading (CSS):
<! doctype html สาธารณะ -// w3c // dtd html 4.01 // en
http://www.w3.org/tr/html4/strict.dtd>
DTD ในช่วงเปลี่ยนผ่านสามารถมีคุณสมบัติการเรนเดอร์และองค์ประกอบที่ W3C คาดว่าจะย้ายเข้าไปในแผ่นสไตล์ ใช้ประเภทนี้หากผู้อ่านของคุณใช้เบราว์เซอร์ที่ไม่รองรับสไตล์ชีท (CSS) เพื่อให้คุณต้องใช้คุณสมบัติการเรนเดอร์ของ HTML:
<! doctype html สาธารณะ -// w3c // dtd html 4.01 transitional // en
http://www.w3.org/tr/html4/loose.dtd>
Frameset DTD ควรใช้สำหรับเอกสารที่มีเฟรม ยกเว้นองค์ประกอบเฟรมเซ็ตที่แทนที่องค์ประกอบของร่างกาย Frameset DTD เทียบเท่ากับ DTD ในช่วงเปลี่ยนผ่าน:
<! doctype html สาธารณะ -// w3c // dtd html 4.01 frameset // en
http://www.w3.org/tr/html4/frameset.dtd>
XHTML 1.0 ระบุเอกสาร XML สามประเภท: เข้มงวด, เปลี่ยนผ่านและเฟรม
หากคุณต้องการเครื่องหมายที่สะอาดเพื่อหลีกเลี่ยงความสับสนในเลเยอร์การนำเสนอให้ใช้ประเภทนี้ โปรดใช้กับแผ่นสไตล์ cascading (CSS):
<! doctype html
สาธารณะ -// w3c // dtd xhtml 1.0 เข้มงวด // en
http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd>
DTD ในช่วงเปลี่ยนผ่านสามารถมีคุณสมบัติการเรนเดอร์และองค์ประกอบที่ W3C คาดว่าจะย้ายเข้าไปในแผ่นสไตล์ ใช้ประเภทนี้หากผู้อ่านของคุณใช้เบราว์เซอร์ที่ไม่รองรับสไตล์การเรียงลำดับ (CSS) เพื่อให้คุณต้องใช้คุณสมบัติการเรนเดอร์ของ XHTML:
<! doctype html
สาธารณะ -// w3c // dtd xhtml 1.0 transitional // en
http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd>
ใช้ DTD นี้เมื่อคุณต้องการใช้เฟรมเวิร์ก!
<! doctype html
สาธารณะ -// w3c // dtd xhtml 1.0 frameset // en
http://www.w3.org/tr/xhtml1/dtd/xhtml1-frameset.dtd>
การลงทะเบียนความพร้อมใช้งานระดับสูงสุดขององค์ประกอบ HTML // องค์กร // ประเภทแท็ก // url ภาษานิยาม
องค์ประกอบระดับบนสุด: ระบุประเภทองค์ประกอบระดับบนสุดที่ประกาศใน DTD สิ่งนี้สอดคล้องกับประเภทเอกสาร SGML ที่ประกาศ ค่าเริ่มต้นคือ HTML
ความพร้อมใช้งาน: ระบุว่าตัวระบุสาธารณะอย่างเป็นทางการ (FPI) เป็นวัตถุหรือทรัพยากรระบบที่เข้าถึงได้สาธารณะ ค่าสามารถเป็นสาธารณะหรือระบบค่าเริ่มต้นสาธารณะ แสดงถึงวัตถุที่เข้าถึงได้สาธารณะ ระบบแสดงถึงทรัพยากรระบบเช่นไฟล์ท้องถิ่นหรือ URL
การลงทะเบียน: ระบุว่าองค์กรลงทะเบียนโดยองค์การระหว่างประเทศเพื่อมาตรฐาน (ISO) หรือไม่
+ เป็นค่าเริ่มต้นซึ่งระบุว่าชื่อองค์กรนั้นลงทะเบียน
- หมายความว่าชื่อองค์กรไม่ได้ลงทะเบียน Internet Engineering Task Force (IETF) และ World Wide Web Association (W3C) ไม่ได้ลงทะเบียนกับองค์กร ISO
องค์กร: ระบุชื่อของกลุ่มหรือองค์กรที่บ่งบอกถึงการสร้างและการบำรุงรักษาของ DTD ที่อ้างอิงโดยการประกาศ Doctype คือ OwnDerid IETF เป็น IETF W3C คือ W3C
ประเภท: ระบุคลาสข้อความสาธารณะนั่นคือประเภทของวัตถุที่อ้างอิง ค่าเริ่มต้นคือ DTD
แท็ก: ระบุคำอธิบายข้อความสาธารณะนั่นคือชื่อเชิงพรรณนาที่ไม่ซ้ำกันสำหรับข้อความสาธารณะที่อ้างถึง สามารถรวมหมายเลขเวอร์ชันได้ในภายหลัง ค่าเริ่มต้นคือ HTML
คำจำกัดความ: ระบุคำจำกัดความประเภทเอกสาร
Frameset Frameset Documentation
เข้มงวดไม่รวมคุณสมบัติและองค์ประกอบที่เป็นตัวแทนทั้งหมดที่ผู้เชี่ยวชาญ W3C ต้องการเลิกจ้างเพราะแผ่นสไตล์นั้นสมบูรณ์แบบอยู่แล้ว
การเปลี่ยนผ่านมีเนื้อหาทั้งหมดยกเว้นองค์ประกอบเฟรม
ภาษา: ระบุภาษาข้อความสาธารณะนั่นคือระบบเข้ารหัสภาษาธรรมชาติที่ใช้ในการสร้างวัตถุที่อ้างอิง คำจำกัดความภาษาถูกเขียนเป็นรหัสภาษา ISO 639 (Capital Two Letters) เริ่มต้น ภาษาอังกฤษ.
URL: ระบุตำแหน่งของวัตถุที่อ้างอิง
หากคุณต้องการตรวจสอบว่าเนื้อหาหน้าเว็บของคุณเป็นไปตามมาตรฐานที่ประกาศใน Doctype คุณสามารถใช้เครื่องมือตรวจสอบที่จัดทำโดย W3C หรือไม่:
http://validator.w3.org/
เบราว์เซอร์ที่ทันสมัยรวมถึงโหมดการเรนเดอร์ที่แตกต่างกันโดยมีจุดประสงค์เพื่อสนับสนุนทั้งหน้าเว็บที่เป็นไปตามมาตรฐาน W3C และหน้าเว็บที่ออกแบบมาสำหรับเบราว์เซอร์รุ่นเก่า ในหมู่พวกเขาโหมดมาตรฐาน (นั่นคือโหมดการนำเสนอที่เข้มงวด) ใช้เพื่อนำเสนอหน้าเว็บที่เป็นไปตามมาตรฐานล่าสุดในขณะที่โหมด Quirks (นั่นคือโหมดการนำเสนอที่หลวมหรือโหมดความเข้ากันได้) ใช้เพื่อนำเสนอหน้าเว็บที่ออกแบบมาสำหรับเบราว์เซอร์แบบดั้งเดิม นอกจากนี้โปรดทราบว่า Mozilla/Netscape 6 ได้เพิ่มโหมดเกือบมาตรฐานเพื่อรองรับเว็บเพจที่ออกแบบมาสำหรับมาตรฐานรุ่นเก่า
ในทางทฤษฎีนี่ควรเป็นสวิตช์ที่ใช้งานง่ายมาก หากองค์ประกอบ <! doctype> ของหน้าชี้ไปที่มาตรฐานการปฏิบัติตามของหน้า (เช่น XHTML1.0) เบราว์เซอร์จะเปลี่ยนไปใช้โหมดมาตรฐาน หากไม่ได้ระบุ doctype หรือระบุ HTML 3.2 และรุ่นเก่ากว่านั้นเบราว์เซอร์จะเปลี่ยนเป็นโหมด Quirks ด้วยวิธีนี้เบราว์เซอร์สามารถแสดงเอกสารที่เป็นไปตามมาตรฐานอย่างถูกต้องโดยไม่ต้องละทิ้งหน้าเว็บสมัยเก่าที่ไม่ตรงกับมาตรฐาน แต่จะมีสถานการณ์ดังต่อไปนี้:
ในการประกาศ Doctype ที่สมบูรณ์รวม URL ของไฟล์คำจำกัดความประเภทเอกสารที่เกี่ยวข้อง (DTD) หาก URL หายไปหรือหากมีการระบุเส้นทางสัมพัทธ์ (แทนที่จะเป็นที่อยู่อินเทอร์เน็ตที่ผ่านการรับรองอย่างสมบูรณ์) เบราว์เซอร์ส่วนใหญ่จะเข้าสู่โหมด Quirks โดยไม่คำนึงถึงโหมดที่ระบุโดยการประกาศ Doctype
เบราว์เซอร์มีความอ่อนไหวต่อรูปแบบและรูปแบบของการประกาศ doctype หากไม่สามารถรับรู้ได้ว่า doctype ที่มีแบบฟอร์มไม่ถูกต้องจะบังคับให้เข้าสู่โหมด Quirks (ขอแนะนำให้คัดลอกและวาง doctype ที่ถูกต้องที่รู้จักลงในเอกสารแทนที่จะพิมพ์ด้วยตนเอง) เหตุผลทั่วไปสำหรับข้อผิดพลาดของแบบฟอร์ม Doctype คือพื้นที่หายไประหว่างส่วนแรกของ Doctype และ URL ยุบ doctype แบ่งออกเป็นสองบรรทัดเป็นบรรทัดเดียวและพื้นที่นั้นมักจะหายไป
เมื่อเบราว์เซอร์จัดการกับช่วงการเปลี่ยนภาพ Doctype มันน่าจะมีปัญหาที่ไม่สอดคล้องกันมากที่สุด IE และ Opera ใช้โหมดมาตรฐาน Netscape 6 และรุ่นเก่าของ Safari ใช้โหมด quirks; Netscape 7, Mozilla 1 และรุ่นใหม่ของ Safari ใช้โหมดมาตรฐานเกือบของ Netscape ซึ่งเป็นโหมดมาตรฐานที่ทนต่อความผิดพลาดได้ดีกว่า
นอกจากนี้ยังมีความไม่สอดคล้องกันเมื่อเบราว์เซอร์จัดการ doctypes ที่ไม่รู้จัก IE และ Opera จะเข้าสู่โหมดมาตรฐาน กล่าวอีกนัยหนึ่งก็ถือว่า Doctype ที่ไม่รู้จักเป็นมาตรฐานใหม่ที่ไม่ได้รวมอยู่ในเบราว์เซอร์ ในทางตรงกันข้าม NetScape 6 จะเปลี่ยนไปใช้โหมด quirks เมื่อพบ doctypes ที่ไม่รู้จัก
การสลับ Doctype อาจเป็นวิธีที่มีประสิทธิภาพในการให้เบราว์เซอร์เข้าสู่โหมดการเรนเดอร์ที่ถูกต้องและแสดงหน้าเว็บอย่างถูกต้องโดยที่คุณสังเกตเห็นความไม่สอดคล้องกันในเบราว์เซอร์ต่างๆและสามารถหลีกเลี่ยงปัญหาต่าง ๆ ได้
1. ทันทีหลังจากการประกาศ doctype ข้างต้นคือการประกาศ XHTML namespace ซึ่งอยู่ในองค์ประกอบ <Html> ที่ปรับปรุงแล้วเขียนเป็น:
<html xmlns = http: //www.w3.org/1999/xhtml>
2. เนื่องจากหน้า XHTML 1.0 เป็นเอกสาร XML ตามกฎหมายและ XML เป็นตัวพิมพ์เล็กที่มีความไวต่อแท็กและแอตทริบิวต์เพื่อความเรียบง่ายแท็กและแอตทริบิวต์ทั้งหมดในหน้า XHTML 1.0 ต้องเป็นตัวพิมพ์เล็ก
เครื่องมือฟรีบางอย่างเช่น html tidy (http://tidy.sourceforge.net/) สามารถช่วยคุณแปลงแท็กและแอตทริบิวต์เป็นตัวพิมพ์เล็กโดยอัตโนมัติ
3. ประกาศภาษาที่ใช้ในหน้าโดยการเพิ่มองค์ประกอบ <meta> ลงในองค์ประกอบ <head>
<meta http-equiv = เนื้อหาประเภทเนื้อหา = text/html; charset = gbk />
4. ใน XHTML คุณลักษณะทั้งหมดจะต้องอ้างถึง
เครื่องมือฟรีบางอย่างเช่น html tidy (http://tidy.sourceforge.net/) สามารถช่วยคุณใส่ใบเสนอราคาโดยอัตโนมัติในแอตทริบิวต์ทั้งหมด
5. ใน XHTML คุณสมบัติทั้งหมดจะต้องมีค่า
ไม่สามารถเขียนได้ใน HTML 4.0:
<ประเภทอินพุต = ชื่อช่องทำเครื่องหมาย = ค่าเสื้อ = การตรวจสอบขนาดกลาง>
และเขียน:
<ประเภทอินพุต = ชื่อช่องทำเครื่องหมาย = ค่าเสื้อ = medium checked = ตรวจสอบ />
6. ใน XHTML แท็กทั้งหมดจะต้องปิด
มีสองวิธีในการปิดแท็ก แท็กที่มีเนื้อหาถูกปิดโดยใช้แท็กปลายและแท็กที่ว่างเปล่าตามด้วยพื้นที่และ / ตัวอย่างเช่น:
<p> นี่เป็น HTML ที่ยอมรับได้และยังเป็น XHTML ที่ถูกต้อง </p>
<img src = logo.gif />
7. อย่าใช้ - ในเนื้อหาความคิดเห็น
- สามารถใช้ได้เฉพาะในตอนต้นและจุดสิ้นสุดของความคิดเห็น XHTML และไม่สามารถปรากฏในเนื้อหาของความคิดเห็น ไม่อนุญาตให้ใช้วิธีการเขียนต่อไปนี้:
<!-ไม่ถูกต้อง-และตัวคั่นแบบคลาสสิกด้านล่าง -
-
8. HTML เข้ารหัสสัญลักษณ์พิเศษทั้งหมด
ข้อกำหนดสามประการของ W3C, XHTML/CSS/DOM เป็นระบบที่สมบูรณ์และเข้มงวด ฉันเรียกข้อกำหนดทั้งสามนี้ว่าการจุติของพระเจ้าตรีเอกานุภาพในเว็บโลก ข้อกำหนดทั้งสามนี้แสดงถึงสามส่วนของโครงสร้างการนำเสนอและพฤติกรรมของหน้าเว็บ แบ่งหน้าเว็บอย่างเคร่งครัดออกเป็นทั้งสามชั้นเหล่านี้และพยายามสร้างเนื้อหาของแต่ละเลเยอร์ที่เป็นอิสระซึ่งจะช่วยปรับปรุงความสามารถในการนำกลับมาใช้ใหม่และแบบแยกส่วนของหน้าและลดค่าใช้จ่ายในการผลิตหน้าการบำรุงรักษาและการดัดแปลงอย่างมาก เพื่อให้บรรลุลำดับชั้นที่กล่าวถึงข้างต้นการเขียน XHTML ควรมีแท็กที่เกี่ยวข้องกับโครงสร้างเท่านั้น (องค์ประกอบและแอตทริบิวต์) ดังนั้นคุณควรคุ้นเคยกับการใช้ DTD ประเภทที่เข้มงวดและละทิ้งเครื่องหมายเหล่านั้นด้วยความหมายที่แสดงออกโดยเร็วที่สุด (ไม่แนะนำเครื่องหมายเหล่านั้นในข้อกำหนด HTML 4.0 และจะถูกทิ้งในรุ่นหลังจาก XHTML) ละทิ้งวิธีการแบบเก่าตามตารางโดยเร็วที่สุดและใช้เค้าโครง CSS ที่สมบูรณ์
"คู่มือผู้มีอำนาจสำหรับ HTML และ XHTML" โดย Chuck Musciano & Bill Kennedy
"XHTML Tutorial" โดย Chelsea Valentine & Chris Minnick
"เว็บไซต์ refactoring" โดย Jeffrey Zeldman
ผู้แต่ง: Zhang Ziqiu
ที่มา: http://www.cnblogs.com/zhangziqiu/