0Pricing
CSS Academy · บทเรียน

ช่องว่างและการจัดวางกริด

เพิ่มช่องว่างระหว่างเซลล์กริดด้วย gap และจัดวางรายการด้วย grid-column กับ grid-row

ช่องว่างและการจัดวางกริด เป็นบทเรียน CSS Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน CSS Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส CSS Academy มีบทเรียนทั้งหมด 4 บทเรียน

ช่องว่างใน CSS Grid

พร็อพเพอร์ตี gap กำหนดพื้นที่ระหว่างแถวและคอลัมน์ของกริด และใช้แทนพร็อพเพอร์ตี grid-gap แบบเดิม ทั้งยังใช้งานกับ Flexbox ได้ด้วย

<div class="grid">
  <div style="background:#4f8cff22;border:1px solid #4f8cff;padding:12px;border-radius:4px;">1</div>
  <div style="background:#ffb84d22;border:1px solid #ffb84d;padding:12px;border-radius:4px;">2</div>
  <div style="background:#7ee78722;border:1px solid #7ee787;padding:12px;border-radius:4px;">3</div>
  <div style="background:#ff6b6b22;border:1px solid #ff6b6b;padding:12px;border-radius:4px;">4</div>
  <div style="background:#b57bff22;border:1px solid #b57bff;padding:12px;border-radius:4px;">5</div>
  <div style="background:#3fd0c922;border:1px solid #3fd0c9;padding:12px;border-radius:4px;">6</div>
</div>

row-gap และ column-gap

กำหนดช่องว่างระหว่างแถวและคอลัมน์แยกจากกัน:

<div class="grid" style="display:grid;grid-template-columns:repeat(3, 1fr);">
  <div style="background:#4f8cff22;border:1px solid #4f8cff;padding:12px;border-radius:4px;">1</div>
  <div style="background:#ffb84d22;border:1px solid #ffb84d;padding:12px;border-radius:4px;">2</div>
  <div style="background:#7ee78722;border:1px solid #7ee787;padding:12px;border-radius:4px;">3</div>
  <div style="background:#ff6b6b22;border:1px solid #ff6b6b;padding:12px;border-radius:4px;">4</div>
  <div style="background:#b57bff22;border:1px solid #b57bff;padding:12px;border-radius:4px;">5</div>
  <div style="background:#3fd0c922;border:1px solid #3fd0c9;padding:12px;border-radius:4px;">6</div>
</div>

หมายเลขเส้นกริด

CSS Grid จะกำหนดหมายเลขให้เส้นโดยเริ่มจาก 1 กริดสามคอลัมน์จะมีเส้นคอลัมน์หมายเลข 1, 2, 3, 4 ส่วนหมายเลขติดลบจะนับจากท้ายสุด โดย -1 คือเส้นสุดท้าย และ -2 คือเส้นรองสุดท้าย

grid-column และ grid-row

วางรายการด้วยตนเองโดยใช้หมายเลขเส้นร่วมกับ grid-column และ grid-row:

<div style="display:grid;grid-template-columns:repeat(3, 1fr);grid-auto-rows:60px;gap:8px;">
  <div class="header" style="background:#4f8cff22;border:1px solid #4f8cff;padding:8px;">Header (spans all 3 columns, row 1)</div>
  <div class="main" style="background:#ffb84d22;border:1px solid #ffb84d;padding:8px;">Main (spans 2 columns, row 2)</div>
</div>

คีย์เวิร์ด span

ใช้ span เพื่อระบุจำนวนแทร็กที่รายการควรครอบคลุม แทนการใช้หมายเลขเส้นแบบสัมบูรณ์:

<div style="display:grid;grid-template-columns:repeat(4, 60px);grid-auto-rows:60px;gap:8px;">
  <div style="background:#ffb84d22;border:1px solid #ffb84d;"></div>
  <div class="featured" style="background:#4f8cff22;border:1px solid #4f8cff;padding:4px;">Featured (span 2x2)</div>
  <div style="background:#ffb84d22;border:1px solid #ffb84d;"></div>
  <div style="background:#ffb84d22;border:1px solid #ffb84d;"></div>
</div>

หมายเลขเส้นติดลบ

ดัชนีติดลบจะนับจากท้ายสุด 1 / -1 จะครอบคลุมความกว้างทั้งหมดของกริดเสมอ ไม่ว่ากริดจะมีคอลัมน์กี่คอลัมน์:

<div style="display:grid;grid-template-columns:repeat(3, 1fr);gap:8px;">
  <div class="full-width" style="background:#4f8cff22;border:1px solid #4f8cff;padding:8px;">Full width (grid-column: 1 / -1)</div>
  <div style="background:#ffb84d22;border:1px solid #ffb84d;padding:8px;">Item</div>
  <div style="background:#7ee78722;border:1px solid #34c759;padding:8px;">Item</div>
</div>

ชวเลข grid-area

grid-area กำหนดค่าการวางกริดทั้งสี่ค่าในพร็อพเพอร์ตีเดียว: row-start / column-start / row-end / column-end

<div style="display:grid;grid-template-columns:repeat(3, 1fr);grid-auto-rows:60px;gap:0;">
  <div class="hero" style="background:#4f8cff22;border:1px solid #4f8cff;padding:8px;">Hero (row 1 start, col 1 start, row 2 end, last column)</div>
  <div style="background:#ffb84d22;border:1px solid #ffb84d;"></div>
  <div style="background:#ffb84d22;border:1px solid #ffb84d;"></div>
  <div style="background:#ffb84d22;border:1px solid #ffb84d;"></div>
</div>

การวางอัตโนมัติ

รายการที่ไม่ได้วางตำแหน่งไว้อย่างชัดเจนจะถูกวางโดยอัตโนมัติในเซลล์ถัดไปที่ว่าง ตามอัลกอริทึม grid-auto-flow โดยค่าเริ่มต้น เบราว์เซอร์จะเติมเซลล์จากซ้ายไปขวา และจากบนลงล่าง

justify-items และ align-items ในกริด

ในคอนเทนเนอร์กริด justify-items จะจัดแนวเนื้อหาในเซลล์ตามแนวนอน ส่วน align-items จะจัดแนวตามแนวตั้ง ทั้งสองค่ามีค่าเริ่มต้นเป็น stretch

<div class="grid" style="min-height:120px;">
  <div style="background:#4f8cff22;border:1px solid #4f8cff;padding:8px;width:fit-content;">centered, top-aligned item</div>
</div>

justify-self และ align-self

รายการกริดแต่ละรายการสามารถกำหนดการจัดแนวของตนเองทับค่าของคอนเทนเนอร์ได้ โดยใช้ justify-self และ align-self:

<div style="display:grid;grid-template-columns:1fr;min-height:120px;">
  <div class="featured-card" style="background:#4f8cff22;border:1px solid #4f8cff;padding:8px;">Stretched horizontally, centered vertically</div>
</div>

รายการกริดที่ซ้อนทับกัน

รายการหลายรายการสามารถอยู่ในเซลล์กริดเดียวกันได้ ใช้ z-index เพื่อควบคุมว่ารายการใดจะแสดงอยู่ด้านบน วิธีนี้ช่วยให้สร้างการออกแบบแบบซ้อนชั้นได้ เช่น รูปภาพกับข้อความซ้อนทับ

<div style="display:grid;grid-template-columns:repeat(2, 1fr);grid-template-rows:repeat(2, 60px);">
  <div class="image" style="background:#4f8cff44;border:1px solid #4f8cff;">Image layer</div>
  <div class="caption" style="background:rgba(0,0,0,0.6);color:#fff;align-self:end;padding:4px 8px;">Caption overlay</div>
</div>

ตรวจสอบความเข้าใจ

รายการหนึ่งมี grid-column: 2 / span 3 รายการนี้จะอยู่ในคอลัมน์ใดบ้างเมื่อกริดมี 5 คอลัมน์

สรุปทบทวน

gap เพิ่มช่องว่างระหว่างเซลล์กริด รายการต่าง ๆ จะถูกวางโดยใช้หมายเลขเส้นร่วมกับ grid-column และ grid-row คีย์เวิร์ด span ระบุจำนวนแทร็กที่ต้องการครอบคลุม ใช้ 1 / -1 เพื่อครอบคลุมทุกคอลัมน์เสมอ รายการกริดสามารถซ้อนทับกันได้โดยใช้ z-index

คำถามที่พบบ่อย

บทเรียน “ช่องว่างและการจัดวางกริด” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ช่องว่างและการจัดวางกริด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส CSS Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส CSS Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ช่องว่างและการจัดวางกริด”

เพิ่มช่องว่างระหว่างเซลล์กริดด้วย gap และจัดวางรายการด้วย grid-column กับ grid-row คุณปฏิบัติ CSS Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน CSS Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน CSS Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “ช่องว่างและการจัดวางกริด” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน CSS Academy นี้ได้ไหม

ได้ บทเรียน CSS Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. Display Grid และคอลัมน์กับแถวแม่แบบ
  2. หน่วย fr และ Repeat
  3. ช่องว่างและการจัดวางกริด
  4. พื้นที่แม่แบบกริด
← กลับไปที่ CSS Academy