ข้ามไปยังเนื้อหา

Media Queries

ใน Figma คุณมี Artboard แยกกันสำหรับ Desktop, Tablet และ Mobile คุณตัดสินใจว่า Layer ไหนมองเห็น Font ไหนใหญ่กว่า Column ไหนยุบ Media Query คือวิธีที่คุณแสดง Logic นั้นเป็นโค้ด CSS — “ใช้ กฎเหล่านี้ เมื่อหน้าจอกว้าง เท่านี้

@media (max-width: 480px) {
/* กฎใน Block นี้จะใช้เฉพาะเมื่อ Viewport กว้าง 480 px หรือแควกว่า */
}
@media (min-width: 480px) {
/* กฎใน Block นี้จะใช้เฉพาะเมื่อ Viewport กว้าง 480 px หรือกว้างกว่า */
}

คิดว่าเป็นประโยค if สำหรับ CSS:

  • max-width = “ถ้าหน้าจอกว้าง ไม่เกิน นี้ ให้ทำ…” (ใหญ่ → เล็ก)
  • min-width = “ถ้าหน้าจอกว้าง อย่างน้อย นี้ ให้ทำ…” (เล็ก → ใหญ่)

กรอบ Preview ด้านล่างคือหน้าจอของคุณ ย่อหน้าต่าง Browser ให้แคบลง (หรือดูบนโทรศัพท์) แล้วสังเกต Card ที่เปลี่ยน Layout เพราะ Preview Pane มีความกว้างประมาณครึ่งหน้าจอบน Desktop Breakpoint ที่ max-width: 420px จะทำงานได้จริงโดยไม่ต้องใช้โทรศัพท์

ที่ความกว้างมากขึ้น รูปภาพและข้อความจะอยู่เคียงกัน เมื่อ Pane แคบกว่า 420 px Block @media (max-width: 420px) จะเริ่มทำงานและเรียงซ้อนกันในแนวตั้ง นี่คือสิ่งที่คุณจะแสดงให้ Developer เห็นโดยสลับระหว่าง Mobile และ Desktop Artboard ใน Figma

คุณไม่จำกัดแค่ Layout สามารถเปลี่ยน Font Size ซ่อน Element ปรับ Spacing — ทุกอย่างใน CSS สามารถ Override ได้ภายใน Media Query

h1 {
font-size: 2.5rem; /* default: หน้าจอใหญ่ */
}
@media (max-width: 420px) {
h1 {
font-size: 1.6rem; /* เล็กลงบนหน้าจอแคว */
}
}
  • ออกแบบเฉพาะ breakpoint หลัก ๆ (375px, 1440px) แล้วสมมติว่าระหว่างกลางจะดูดีเอง
  • ตั้ง breakpoint ตาม “อุปกรณ์ที่มี” แทนตาม “จุดที่ content เริ่มพัง”

Designer เห็น “3 design เวอร์ชัน (mobile/tablet/desktop)” แต่ developer ต้องเขียนกฎ CSS ที่ครอบคลุมทุกความกว้างระหว่างกลางด้วย ไม่ใช่แค่ 3 จุดที่ design ไว้

💡 ตัวอย่างจากของจริง

BBC News และ The Guardian ทดสอบเว็บที่ทุกความกว้างหน้าจอ ไม่ใช่แค่ 3 breakpoint เพราะผู้อ่านใช้อุปกรณ์หลากหลายมาก

`@media (max-width: 480px)` หมายความว่าอะไร?
ในตัวอย่าง Card การเปลี่ยนแปลง CSS อะไรที่เกิดขึ้นบนหน้าจอแคว?
ทำไมถึงแนะนำ Breakpoint เล็ก (ประมาณ 420 px) สำหรับ Live Preview ในหลักสูตรนี้?