ใน Bootstrap 4 ระบบกริด (Grid system) เป็นเครื่องมือสำคัญที่ช่วยในการออกแบบเว็บไซต์ให้มีการจัดวางคอนเทนต์อย่างเป็นระเบียบทั้งในหน้าจอขนาดเล็กและใหญ่ โดยรูปแบบการใช้งาน Grid แบบ “Stacked-to-horizontal” หมายถึงการจัดวางคอนเทนต์ให้อยู่ในแนวตั้ง (Stacked) เมื่ออยู่ในหน้าจอขนาดเล็ก เช่น มือถือ และปรับเป็นแนวนอน (Horizontal) เมื่ออยู่ในหน้าจอขนาดใหญ่ขึ้น เช่น Tablet หรือ Desktop
หลักการทำงานของ Bootstrap Grid System
Bootstrap ใช้ระบบกริดที่แบ่งหน้าเป็น 12 คอลัมน์ ทำให้เราสามารถกำหนดขนาดของแต่ละคอลัมน์ได้ โดยในระบบนี้มีการใช้คลาสที่เป็น Prefix ตามขนาดหน้าจอ ได้แก่
.col-สำหรับหน้าจอขนาดเล็กมาก (xs).col-sm-สำหรับหน้าจอขนาดเล็ก (sm).col-md-สำหรับหน้าจอขนาดกลาง (md).col-lg-สำหรับหน้าจอขนาดใหญ่ (lg).col-xl-สำหรับหน้าจอขนาดใหญ่พิเศษ (xl)
เราสามารถกำหนดการจัดวางคอนเทนต์ให้เรียงซ้อนกันในหน้าจอขนาดเล็ก และเรียงเป็นแนวนอนในหน้าจอขนาดใหญ่โดยการใช้คลาสเหล่านี้ร่วมกัน
การใช้งานแบบ Stacked to Horizontal
สมมติว่าเราต้องการสร้างเลย์เอาต์ที่มี 3 คอลัมน์ ที่จะเรียงในแนวตั้งเมื่ออยู่บนมือถือ (หน้าจอเล็ก) และเรียงในแนวนอนเมื่ออยู่บนหน้าจอที่ใหญ่ขึ้น เราจะใช้คลาสดังนี้
<div class="container">
<div class="row">
<div class="col-12 col-md-4">Column 1</div>
<div class="col-12 col-md-4">Column 2</div>
<div class="col-12 col-md-4">Column 3</div>
</div>
</div>.col-12: ให้คอลัมน์นี้ใช้พื้นที่เต็ม (100%) ของหน้าจอขนาดเล็ก.col-md-4: เมื่อหน้าจอขนาดกลางขึ้นไป (md ขึ้นไป) ให้คอลัมน์นี้ใช้พื้นที่ 4 ส่วนจากทั้งหมด 12 ส่วน (33.33%)
ดังนั้น เมื่อใช้งานในหน้าจอขนาดเล็ก คอลัมน์จะเรียงกันในแนวตั้ง (Stacked) แต่ในหน้าจอขนาดใหญ่ขึ้น คอลัมน์จะเรียงเป็นแนวนอน (Horizontal)
ผลลัพธ์บนหน้าจอขนาดเล็ก

ผลลัพธ์บนหน้าจอขนาดกลาง

ตัวอย่างการปรับใช้ Grid แบบ Stacked to Horizontal ในหลากหลายรูปแบบ
สองคอลัมน์ Stacked to Horizontal
<div class="container">
<div class="row">
<div class="col-12 col-md-6">Column 1</div>
<div class="col-12 col-md-6">Column 2</div>
</div>
</div>ในหน้าจอเล็กจะเรียงกันในแนวตั้ง แต่เมื่ออยู่บนหน้าจอขนาดกลางขึ้นไปจะเรียงเป็น 2 คอลัมน์แนวนอน
การจัดวางคอลัมน์ด้วยสัดส่วนที่แตกต่าง
<div class="container">
<div class="row">
<div class="col-12 col-md-8">Column 1 (8 ส่วน)</div>
<div class="col-12 col-md-4">Column 2 (4 ส่วน)</div>
</div>
</div>คอลัมน์นี้จะเรียงซ้อนกันในหน้าจอเล็ก แต่จะจัดวางแบบ 8 ส่วนกับ 4 ส่วน เมื่อหน้าจอใหญ่ขึ้น
คอลัมน์หลายขนาดที่ซับซ้อน
<div class="container">
<div class="row">
<div class="col-6 col-sm-4 col-md-3">Column 1</div>
<div class="col-6 col-sm-4 col-md-3">Column 2</div>
<div class="col-6 col-sm-4 col-md-3">Column 3</div>
<div class="col-6 col-sm-4 col-md-3">Column 4</div>
</div>
</div>ในหน้าจอขนาดเล็กที่สุด แต่ละคอลัมน์จะใช้พื้นที่ครึ่งหนึ่ง (col-6) แต่เมื่อหน้าจอขนาดใหญ่ขึ้นแต่ละคอลัมน์จะมีขนาดที่เล็กลงตามลำดับ (col-sm-4, col-md-3)
การประยุกต์ใช้งาน
การใช้งาน Grid แบบ Stacked to Horizontal สามารถประยุกต์ใช้ในหลากหลายส่วนของเว็บไซต์ เช่น
- Header หรือ Navigation Bar: ในหน้าจอมือถือเมนูจะเรียงซ้อนกัน ในขณะที่ในหน้าจอขนาดใหญ่ เมนูจะแสดงเป็นแนวนอน
- Section ของคอนเทนต์: เช่น รูปภาพหรือข้อความใน Section ใด Section หนึ่งอาจถูกจัดวางให้เรียงซ้อนในมือถือและเรียงข้างกันเมื่อเปิดบนคอมพิวเตอร์
- ฟอร์มหลายฟิลด์: ฟิลด์ในฟอร์มสามารถเรียงซ้อนกันในมือถือและเรียงข้างกันในหน้าจอที่ใหญ่ขึ้นเพื่อประหยัดพื้นที่
สรุป
การใช้ Grid แบบ Stacked to Horizontal ของ Bootstrap 4 ช่วยให้สามารถออกแบบเว็บไซต์ที่ตอบสนองต่อขนาดหน้าจอได้ง่ายขึ้น โดยไม่ต้องเขียนโค้ดแยกต่างหากในแต่ละขนาดหน้าจอ การใช้งานคลาสที่ปรับตามขนาดหน้าจอ เช่น .col-, .col-sm-, .col-md- จะทำให้การออกแบบเว็บมีความยืดหยุ่นและเหมาะสมกับทุกอุปกรณ์
