ทำไมเว็บไม่ responsive นะ (รองรับกับขอโทรศัพท์)
อย่าพึ่งโทษน้อง ChatGPT เลยนะ 😅 จริง ๆ แล้วถ้าเป็น App Script ต้องใส่ตรงนี้ก่อน 💻 เว็บถึงจะรองรับทุกอย่างได้ ✅ #AppScript #theducktech
หลายคนเจอคำว่า “responsive” แล้วสงสัยว่า responsive แปลว่าอะไร จริง ๆ แปลแบบเข้าใจง่ายคือ “การตอบสนอง/การปรับตัวได้” แต่ถ้าอยู่ในบริบททำเว็บ (Responsive Web Design) จะหมายถึง “หน้าเว็บที่ปรับเลย์เอาต์ให้เหมาะกับทุกขนาดหน้าจอ” เช่น มือถือ แท็บเล็ต และคอมพิวเตอร์ เปิดแล้วตัวหนังสือไม่เล็กเกิน ปุ่มกดง่าย ตารางไม่ล้นจอ สังเกตง่าย ๆ ว่าเว็บไม่ responsive มักมีอาการเหล่านี้: ต้องซูมเข้า-ออกตลอด, ข้อความล้นขอบ, ตารางกว้างเกินจอ, เมนูคลิกยาก หรือกราฟ/แดชบอร์ด (Dashboard) ดูเบี้ยวเวลาเปิดในมือถือ ถ้าคุณทำเว็บด้วย Google Apps Script (HtmlService) แล้วเปิดผ่านลิงก์ script.google.com บนมือถือ แต่ยังไม่ยอม “ย่อ/ขยายตามจอ” สาเหตุยอดฮิตคือไม่ได้ใส่ meta viewport ทำให้เบราว์เซอร์บนมือถือ “จำลอง” หน้าจอใหญ่แล้วค่อยย่อให้พอดี ส่งผลให้ทุกอย่างดูเล็กและไม่เข้าที่ วิธีแก้ที่ฉันใช้แล้วเห็นผลทันทีคือใส่ viewport meta เข้าไปใน doGet() ของ Apps Script เช่น: - template.evaluate().addMetaTag('viewport','width=device-width, initial-scale=1') พอมี viewport แล้ว มือถือจะใช้ความกว้างจริงของอุปกรณ์ ทำให้ CSS responsive (เช่น %/flex/grid) ทำงานได้ถูกต้องขึ้นมาก แต่แค่ viewport อย่างเดียวอาจยังไม่พอ ถ้าในหน้าเว็บมีตารางสรุป, รายงานรายเดือน, หรือหน้าคล้าย Stock Manage/Dashboard ที่ตัวเลขเยอะ ๆ แนะนำเพิ่ม 3 จุดนี้เพื่อให้ “responsive” แบบใช้งานได้จริง: 1) ใช้เลย์เอาต์แบบยืดหยุ่น - ตั้ง container ให้ max-width และใช้ padding - ใช้ flexbox/grid แทนการกำหนดความกว้างตายตัว (px) เยอะ ๆ 2) จัดการตารางกว้าง ๆ ให้เลื่อนในแนวนอนได้ - ครอบตารางด้วย div ที่ overflow-x: auto; - จะช่วยให้ตารางไม่ดันหน้าเว็บล้นจอมือถือ 3) ใส่ media query สำหรับหน้าจอเล็ก - เช่นปรับขนาดฟอนต์/ระยะห่าง/จำนวนคอลัมน์เมื่อหน้าจอน้อยกว่า 768px สรุปสั้น ๆ: responsive (ในสายเว็บ) คือ “เว็บที่ปรับตามหน้าจอ” และสำหรับคนทำด้วย Google Apps Script อย่าลืม viewport meta เพราะเป็นจุดเริ่มต้นที่ทำให้หน้าเว็บรองรับมือถือได้จริง ก่อนค่อยไปจูน CSS/เลย์เอาต์ให้เหมาะกับ Dashboard หรือข้อมูลที่แสดงผลเยอะ ๆ




