วันก่อนได้ฟังเลคเชอร์ วิชา Web Engineering มาครับ
มีบางประเด็นน่าสนใจ เลยอยากมาแบ่งปันกันฟัง
อาจารย์บอกว่าต่อไปนี้ ถ้าหากคุณจะทำเว็บขึ้นมา
ให้ใช้
xhtml เท่านั้น ตามคำแนะนำของ W3C
แต่เตือนให้ระวัง หากใช้ CSS level 2 ขึ้นไป
จะมีปัญหาเรื่องการแสดงผล
หากใช้ user agent(บราว์เซอร์นั่นแหละ) ต่างกัน
เลยมีคำถามว่า ก็ในเมื่อเราทำตามมาตรฐานทุกอย่าง
ใช้ xhtml ใช้ css ก็แล้ว ทำไมยังมีปัญหานี้อยู่
แกก็เลยยกตัวอย่าง
Box Model bug ขึ้นมา
ที่เล็กนิ่มกำหนดค่าต่างออกไปจากชาวบ้าน
(จริงๆ อาจารย์แก ด่าเล็กนิ่มมาตลอดตั้งแต่เลคเชอร์แรกๆ แล้ว)
แต่ปัญหายังมีมากกว่านั้นอีก
ตรงนี้แกยกตัวอย่างเรื่อง ฟอนต์
แกถามว่า ฟอนต์ จริงๆ แล้วมันคืออะไร
(หลังจากถกเถึยงกันพอสมควร ได้ข้อสรุปคร่าวๆ ว่า
ฟอนต์คือ ชุดคำสั่งที่อุดมไปด้วยข้อมูลเวคเตอร์ทางคณิตศาสตร์
โดย OS จะเป็นตัวจัดการดึงข้อมูลขึ้นมา เพื่อนำมาแสดงผล)
ก็ลากยาวไปถึงสมัยก่อนที่ OS ยังไม่มีฟอนต์
ต้องมี ฟอนต์เซอร์เวอร์ จนถึงยุคปัจจุบัน
ที่ OS ก็มี ฟอนต์ Built-in หมดแล้ว
เนื่องจาก user agent ไม่มี ฟอนต์ built-in
จึงต้องรับข้อมูลมาจาก OS อีกที
ทีนี้ OS และ user agent แต่ละตัวก็มีวิธีการดึงข้อมูล
และการแสดงผลบนหน้าจอ ที่แตกต่างกันออกไป
นั่นก็เป็นอีกสาเหตุ ที่ทำให้แสดงผลบนเว็บต่างกัน
ถึงแม้จะใช้ user agent เดียวกัน แต่หากต่าง OS กัน
ก็มีโอกาสที่จะ แสดงผลต่างกันอยู่ดี
แกก็ให้ดูตัวอย่างหน้าเว็บ ที่มีฟอนต์ต่างๆ
เวลาเปิดดูในบราว์เซอร์ต่างๆ ก็หน้าตาไม่เหมือนกัน
ทั้งๆ ที่ชื่อเดียวกันด้วยซ้ำ
วกกลับมาที่ CSS อาจารย์บอกว่า
จะปลอดภัย ถ้าเราใช้ CSS level 1
เพราะมันเป็นมาตรฐานตั้งแต่ปี 1996
user agent ก็จะรู้จักและแสดงผลถูกต้องหมดแล้ว
แต่ปัญหาของ CSS level 2
(เป็นมาตรฐานตั้งแต่ปี 1998)
คือ user agent บางตัวอ้างว่ารู้จัก
แต่เวลาแสดงผลจริงๆ ก็เป็นคนละเรื่องละราว
(ก็ไออีของค่ายเล็กนิ่มนี่แหละ )
ดังนั้นจึงต้องระวังเป็นพิเศษครับ