html

ทำ Web และเขียน HTML มาตั้งนาน
เลยมีอย่างไม่ได้เขียนให้ถูกต้องตาม HTML 4.01
บางอันผมเองก็เพิ่งจะรู้

- ควร save เป็น .html การ save เป็น .htm เพราะโปรแกรมเมอร์เก่า
เคยชินกับการที่แต่ก่อนนามสกุลของไฟล์มี 3 ตัว
- tag ต้องเป็น lowercase เช่น <body> เพราะต่อไปตามมาตรฐานแล้ว
กำหนดว่าต้องเป็น lowercase เท่านั้น
- เครื่องหมาย apostrophe (&apos;) ไม่ work ใน IE
- ควรใส่ slash ต่อท้าย url ที่เป็น subfolder
เช่น http://www.w3schools.com/html/
ถ้าไม่ใส่ http://www.w3schools.com/html แบบนี้
จะมี HTTP request 2 ครั้ง ทางฝั่ง server (เพิ่งรู้นะเนี่ย)
- cell ของ table ที่ไม่มี content ด้านในจะแสดงต่างกัน
ถ้ากำหนดให้แสดง border ใน IE จะไม่แสดง ต้องใส่ &nbsp;
- tag <thead>,<tbody> และ <tfoot> ไม่ควรใช้
เพราะมี browser แย่ๆเท่านั้นที่ support
- input แบบ text กว้าง 20 character โดย default
(เพิ่งรู้นะเนี่ย)
- ควรใส่ attribute alt ใน tag img เสมอ เพราะถ้า image ไม่แสดง
จะได้แสดง text ที่กำหนดใน alt แทน นอกจากนี้เพื่อ support browser
ที่แสดงแต่ text
- image จะจัดตำแหน่งแบบ bottom โดย default
- ใช้ทั้ง attribute id และ name สำหรับ tag map เสมอ
เพราะ browser ของ Netscape บาง version ไม่รู้จัก id
(เพิ่งรู้นะเนี่ย)
- การใช้ attribute bgcolor, background และ การแสดงผลของ text
ใน tag body เป็นสิ่งที่ไม่ถูกต้องตาม HTML 4 และ XHTML
- tag font ไม่ควรใช้ เพราะใน version ต่อไปจะถูกเอาออก
- DTD หรือ Document Type Definition ใช้เพื่อระบุว่า html ไฟล์นั้นๆ
เป็น html แบบไหน
เช่น
<!DOCTYPE HTML PUBLIC

"-//W3C//DTD HTML 4.01//EN"

"http://www.w3.org/TR/html4/strict.dtd">
เป็นการระบุว่า html ถูกเขียนตาม HTML 4.01 แบบ strict ทุกอย่าง
(ใช้ตรวจสอบกับ W3C Validator)
- ไม่ควรใช้ tag meta ในการ redirect จากหน้านึงไปอีกหน้านึง
ให้ใช้ server side redirect


ที่มา http://www.w3schools.com/html/default.asp

เพิ่มจากคำบอกเล่า และประสบการณ์
- ถ้าเป็นไปได้ให้ใช้ tag div แทน table สำหรับเว็บที่ทำเพื่อคนตาบอด
เพราะโปรแกรมอ่านสำหรับคนตาบอดบางอัน
จะไม่สามารถอ่าน text ใน table ได้
- ใช้ th สำหรับ cell ใน table ที่เป็น header
- การใช้ AppendChild เพื่อ include JavaScript ไฟล์อื่นๆ
(บางคนพยายามแยก JavaScript เป็นหลายไฟล์
แล้วพยายามทำเหมือน include ใน C/C++) โดยการแก้ DOM
ในส่วน header ไม่ควรทำเพราะ ถ้า AppendChild โดย add
node ที่เป็น script แล้วระบุชื่อไฟล์ใน src ไม่สามารถการันตีได้ว่า
ไฟล์ดังกล่าวจะถูกโหลดเสร็จ ก่อนการเรียกใช้ function ในไฟล์นั้นๆ
ในส่วน tag head ของ IE