Floating devices mockup with responsive website design 3d rendering
Tech

การจัดการ Grid System ใน Bootstrap 5 แบบมืออาชีพ

การพัฒนาเว็บไซต์ให้รองรับหลายขนาดหน้าจอ (Responsive Design) หนึ่งในเครื่องมือที่ช่วยให้ชีวิตของนักพัฒนาเว็บง่ายขึ้นก็คือ Bootstrap 5 โดยเฉพาะ Grid System ที่เป็นหัวใจสำคัญในการจัดวาง Layout ให้สวยงามและยืดหยุ่น การเข้าใจการใช้งาน Grid อย่างถูกต้องและลึกซึ้งจะช่วยให้เราสร้างเว็บไซต์ที่ทั้งดูดีและมีประสิทธิภาพได้อย่างมืออาชีพ

ทำความรู้จักกับ Grid System ใน Bootstrap 5

Grid System คือระบบการจัดวางโครงร่างของเว็บไซต์โดยใช้ Flexbox เป็นพื้นฐานใน Bootstrap 5 ทั้งหมด โดยจะทำงานผ่านการแบ่งพื้นที่ออกเป็น 12 คอลัมน์ (12-column system) ซึ่งเราสามารถกำหนดได้ว่าในแต่ละแถว (row) จะมีคอลัมน์กี่ช่อง และคอลัมน์แต่ละช่องจะกินพื้นที่เท่าไหร่

โครงสร้างหลักของ Grid จะมี 3 องค์ประกอบ

  1. Container เป็นตัวครอบ Layout ทั้งหมด มีทั้ง .container (กำหนดความกว้างตายตัว) และ .container-fluid (เต็มหน้าจอ)
  2. Row ใช้สำหรับจัดกลุ่มคอลัมน์ในแนวนอน โดยต้องอยู่ภายใน Container
  3. Col คอลัมน์ที่เป็นส่วนประกอบย่อยใน Row

ตัวอย่างโครงสร้างพื้นฐาน

<div class=”container”>

  <div class=”row”>

    <div class=”col”>คอลัมน์ 1</div>

    <div class=”col”>คอลัมน์ 2</div>

  </div>

</div>

ขนาดหน้าจอ (Breakpoints) ใน Bootstrap 5

Bootstrap 5 มี breakpoints หลัก 6 ขนาด สำหรับกำหนดว่า layout จะแสดงอย่างไรในแต่ละช่วงความกว้างหน้าจอ

BreakpointClass Prefixความกว้างขั้นต่ำ
Extra smallcol-< 576px
Smallcol-sm-≥ 576px
Mediumcol-md-≥ 768px
Largecol-lg-≥ 992px
Extra largecol-xl-≥ 1200px
XXLcol-xxl-≥ 1400px

ตัวอย่าง

<div class=”col-12 col-md-6 col-lg-4″>

  เนื้อหานี้เต็มความกว้างจอมือถือ  

  ครึ่งจอบนแท็บเล็ต  

  และ 1 ใน 3 ของจอบนเดสก์ท็อป  

</div>

การจัดการคอลัมน์แบบยืดหยุ่น

ถ้าเราไม่กำหนดตัวเลขหลัง .col Bootstrap จะให้แต่ละคอลัมน์แบ่งพื้นที่เท่า ๆ กันโดยอัตโนมัติ เช่น

<div class=”row”>

  <div class=”col”>A</div>

  <div class=”col”>B</div>

  <div class=”col”>C</div>

</div>

จะได้คอลัมน์ 3 ช่องที่มีความกว้างเท่ากัน แต่ถ้าต้องการกำหนดความกว้างเองก็ทำได้ เช่น .col-8 หมายถึงกินพื้นที่ 8 ใน 12 ส่วน

การซ้อน Grid (Nested Grid)

บางครั้งในคอลัมน์หนึ่งเราอาจต้องการแบ่งย่อยเป็นหลายคอลัมน์ย่อยอีกชั้น นี่คือ Nested Grid

<div class=”row”>

  <div class=”col-8″>

    <div class=”row”>

      <div class=”col-6″>ย่อย 1</div>

      <div class=”col-6″>ย่อย 2</div>

    </div>

  </div>

  <div class=”col-4″>ด้านข้าง</div>

</div>

การจัดตำแหน่งคอลัมน์ (Alignment)

Bootstrap 5 ใช้ Flexbox ทำให้สามารถจัดตำแหน่งคอลัมน์ได้หลากหลาย เช่น

  • จัดตรงกลางในแนวนอน .justify-content-center
  • จัดชิดขวา .justify-content-end
  • จัดแนวตั้งกลาง .align-items-center
  • จัดแนวตั้งล่าง .align-items-end

<div class=”row align-items-center” style=”height:200px;”>

  <div class=”col”>อยู่ตรงกลางแนวตั้ง</div>

</div>

การซ่อนและแสดงคอลัมน์ตามหน้าจอ

เราสามารถใช้ Utility Classes เพื่อซ่อนหรือแสดงคอลัมน์ตามขนาดหน้าจอ เช่น

html

คัดลอกแก้ไข

<div class=”col d-none d-md-block”>

  แสดงเฉพาะหน้าจอขนาด Medium ขึ้นไป

</div>

เทคนิคระดับโปรสำหรับการใช้ Grid

1. ใช้ .g-0 สำหรับลบช่องว่างระหว่างคอลัมน์

<div class=”row g-0″>

  <div class=”col”>A</div>

  <div class=”col”>B</div>

</div>

2. ใช้ .order-* เพื่อจัดลำดับคอลัมน์ใหม่

<div class=”row”>

  <div class=”col order-2″>คอลัมน์ 1</div>

  <div class=”col order-1″>คอลัมน์ 2</div>

</div>

3. ใช้ .offset-* เพื่อเลื่อนคอลัมน์

<div class=”col-md-4 offset-md-2″>

  เลื่อนออกจากซ้าย 2 ช่อง

</div>

4. Grid ผสมกันหลาย breakpoint

การกำหนด layout ให้แตกต่างกันในแต่ละอุปกรณ์ เช่น

<div class=”col-12 col-sm-6 col-lg-3″>

  ปรับตามหน้าจอ

</div>

5. Responsive Images และ Media

อย่าลืมใช้ .img-fluid เพื่อให้รูปภาพปรับขนาดตามคอลัมน์อย่างเหมาะสม

ข้อควรระวังในการใช้ Grid System

  • อย่ากำหนดคอลัมน์รวมกันเกิน 12 ในหนึ่งแถว เพราะจะทำให้ layout แตก
  • ควรวาง .row ภายใน .container หรือ .container-fluid เสมอ เพื่อให้การจัดวางเป็นระบบ
  • เลือกใช้ Breakpoints ให้เหมาะสมกับกลุ่มผู้ใช้งานเป้าหมาย
  • ทดสอบเว็บไซต์ในหลายขนาดหน้าจอก่อนปล่อยใช้งานจริง

การจัดการ Grid System ใน Bootstrap 5 ไม่ได้ซับซ้อนอย่างที่คิด เพียงเข้าใจหลักการ 12 คอลัมน์, Breakpoints, และการใช้ Class Utility ต่าง ๆ ก็สามารถสร้าง Layout ที่ยืดหยุ่นและสวยงามได้ การฝึกใช้เทคนิคขั้นสูง เช่น Nested Grid, Order, Offset จะทำให้จัดการโครงร่างเว็บได้อย่างมืออาชีพและตอบโจทย์ผู้ใช้งานทุกอุปกรณ์

การทำงานกับ Grid ที่ดีไม่ใช่แค่ให้เว็บดูสวย แต่ต้องคิดถึงประสบการณ์การใช้งานของผู้เข้าชมเป็นหลัก เพื่อให้เว็บไซต์ทั้งน่าใช้และทำงานได้อย่างลื่นไหลในทุกสถานการณ์

Back To Top