ช่องว่างและการจัดวางกริด
เพิ่มช่องว่างระหว่างเซลล์กริดด้วย 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- Display Grid และคอลัมน์กับแถวแม่แบบ
- หน่วย fr และ Repeat
- ช่องว่างและการจัดวางกริด
- พื้นที่แม่แบบกริด