บทที่ 20 XHTML
XHTML เป็นภาษาที่ถูกกำหนดให้เป็นภาษามาตรฐานใหม่ที่จะใช้ในการสร้างเว็บเพจต่อไปในอนาคต เว็บเบราเซอร์์ทุกค่ายจะรองรับการใช้งาน XHTML และในอนาคตปัญหาการแสดงผลที่ไม่เหมือนกัน ในเว็บเบราเซอร์์ต่างค่ายกันก็จะหมดไป
XHTML ไม่ได้ต่างจาก HTML มากมายอะไรนัก เพียงแต่ว่าเข้มงวดเรื่องความถูกต้องของ syntax มากขึ้นสำหรับ HTML แม้ว่าเราเขียน code ผิดพลาดไปบ้าง เช่น ลืม tag ปิด เว็บเบราเซอร์์ ก็ยังสามารถตีความและแสดงผลได้อย่างถูกต้องเป็นส่วนมาก
สิ่งแตกต่างที่สำคัญระหว่าง XHTML กับ HTML ได้แก่
1. ทุก XHTML element ที่ซ้อนกันต้องเรียงลำดับให้ถูก แต่ละ element ต้องไม่เปิด ปิด ข้ามกัน ใน HTML เราสามารถเขียนสลับ tag ปิดกันได้ เช่น
<b><i>ข้อความนี้เป็นตัวหนา และตัวเอียง</b></i>
แต่สำหรับ XHTML แล้ว เราจะต้องเรียงลำดับการปิดของ tag ให้ถูกต้อง
<b><i>ข้อความนี้เป็นตัวหนา และตัวเอียง</i></b>
2. ทุก XHTML element ต้องทำการปิดให้เรียบร้อย ไม่เว้นแม้แต่ element ที่ไม่มี tag ปิด เช่น <br> จะต้องทำการปิด โดยใช้เครื่องหมาย ' /' เป็น <br /> เป็นต้น
ใน HTML เราอาจลืม tag ปิดได้
<p>ข้อความที่ 1
<p>ข้อความที่ 2 <br>
ข้อความที่ 3 <hr>
<img src="/pic.gif">
แต่สำหรับ XHTML แล้ว จะต้องทำการปิดให้เรียบร้อยทุก tag
<p>ข้อความที่ 1</p>
<p>ข้อความที่ 2 <br />
ข้อความที่ 3 <hr />
<img src="/pic.gif" />
</p>
3. ทุก XHTML element ต้องเขียน tag, attribute และค่าของ attribute ด้วยตัวพิมพ์เล็ก
ใน HTML เราจะใช้์ตัวพิมพ์เล็กหรือพิมพ์ใหญ่ก็ได้
<BODY>
<P Align="CENTER">ข้อความจัดวางกึ่งกลาง</P>
</body>แต่สำหรับ XHTML แล้ว ให้ใช้ตัวพิมพ์เล็กทั้งหมด
<body>
<p align="center">ข้อความจัดวางกึ่งกลาง</p>
</body>
4. ค่าของ attribute ต้องอยู่ในเครื่องหมาย ".." เสมอ
ใน HTML เราอาจจะไม่ใส่เครื่องหมาย ".." ครอบค่าของ attribute ก็ได้
<table width=100%>
แต่สำหรับ XHTML แล้ว เราจะต้องใส่เครื่องหมาย ".." ให้ ค่าของ attribute
<table width="100%">
5. เราไม่สามารถใช้รูปย่อของ attribute ได้
ใน HTML สามารถทำได้ เช่น
<input type="checkbox" checked>
แต่สำหรับ XHTML แล้วจะต้องเขียนเต็มแบบนี้
<input type="checkbox" checked="checked" />
6. ใช้ attribute id แทน attribute name
ใน HTML จะใช้ attribute name สำหรับ element ต่าง เช่น applet, frame, iframe, input และ img
<img src="/picture.gif" name="pic1">
แต่สำหรับ XHTML แล้ว ให้ใช้ attribute id แทน
<img src="/picture.gif" id="pic1" />
และเพื่อให้ใช้กับเว็บเบราเซอร์์รุ่นเก่าได้ ให้ใส่้ทั้ง attribute id และ attribute name ควบคู่กัน
<img src="/picture.gif" id="pic1" name="pic1" />