สร้างการ์ดสำหรับแสดงข่าวบนเว็บด้วย Bootstrap 5

โค้ดนี้สร้าง แถวของการ์ด (Cards) จำนวน 3 ใบ โดยใช้ Bootstrap 5 เพื่อจัดวางแบบ responsive

โครงสร้างหลัก

  • <div class="container">
ใช้สำหรับกำหนดขอบเขตของเนื้อหาให้อยู่ใน container แบบ Bootstrap
  • <div class="row row-cols-1 row-cols-sm-2 row-cols-md-3 g-3">
ใช้ระบบ grid ของ Bootstrap:
  • row-cols-1: แสดง 1 คอลัมน์ในหน้าจอเล็ก
  • row-cols-sm-2: แสดง 2 คอลัมน์ในหน้าจอขนาดกลาง
  • row-cols-md-3: แสดง 3 คอลัมน์ในหน้าจอใหญ่
  • g-3: กำหนดช่องว่างระหว่างคอลัมน์และแถวเป็น 3 (ประมาณ 1rem)
ส่วนของการ์ดแต่ละใบ
  • <div class="card shadow-sm">
สร้างการ์ดพร้อมเงาเบา ๆ ด้วย shadow-sm
  • <svg class="bd-placeholder-img card-img-top">
ส่วนเนื้อหาของการ์ด:
  • <p class="card-text">: ข้อความอธิบาย
  • <div class="btn-group">: ปุ่ม View และ Edit
  • <small class="text-body-secondary">: เวลาประมาณการใช้งาน เช่น "9 mins"
จุดเด่น
  • ใช้ Bootstrap Grid เพื่อจัดวางการ์ดแบบ responsive
  • ใช้ SVG Placeholder แทนภาพจริง ทำให้โหลดเร็วและปรับแต่งง่าย
  • มีปุ่ม View/Edit พร้อมจัดตำแหน่งด้วย d-flex justify-content-between align-items-center
โค้ด HTML
<div class="row row-cols-1 row-cols-sm-2 row-cols-md-3 g-3">
                <!-- card 1-->
                <div class="col">
                    <div class="card shadow-sm"> <svg aria-label="Placeholder: Thumbnail"
                            class="bd-placeholder-img card-img-top" height="225" preserveAspectRatio="xMidYMid slice"
                            role="img" width="100%" xmlns="http://www.w3.org/2000/svg">
                            <title>Placeholder</title>
                            <rect width="100%" height="100%" fill="#55595c"></rect><text x="50%" y="50%" fill="#eceeef"
                                dy=".3em">Thumbnail</text>
                        </svg>
                        <div class="card-body">
                            <p class="card-text">This is a wider card with supporting text below as a natural lead-in to
                                additional content. This content is a little bit longer.</p>
                            <div class="d-flex justify-content-between align-items-center">
                                <div class="btn-group"> <button type="button"
                                        class="btn btn-sm btn-outline-secondary">View</button> <button type="button"
                                        class="btn btn-sm btn-outline-secondary">Edit</button> </div> <small
                                    class="text-body-secondary">9 mins</small>
                            </div>
                        </div>
                    </div>
                </div>
                <!-- card 2-->
                <div class="col">
                    <div class="card shadow-sm"> <svg aria-label="Placeholder: Thumbnail"
                            class="bd-placeholder-img card-img-top" height="225" preserveAspectRatio="xMidYMid slice"
                            role="img" width="100%" xmlns="http://www.w3.org/2000/svg">
                            <title>Placeholder</title>
                            <rect width="100%" height="100%" fill="#55595c"></rect><text x="50%" y="50%" fill="#eceeef"
                                dy=".3em">Thumbnail</text>
                        </svg>
                        <div class="card-body">
                            <p class="card-text">This is a wider card with supporting text below as a natural lead-in to
                                additional content. This content is a little bit longer.</p>
                            <div class="d-flex justify-content-between align-items-center">
                                <div class="btn-group"> <button type="button"
                                        class="btn btn-sm btn-outline-secondary">View</button> <button type="button"
                                        class="btn btn-sm btn-outline-secondary">Edit</button> </div> <small
                                    class="text-body-secondary">9 mins</small>
                            </div>
                        </div>
                    </div>
                </div>
                <!-- card 3-->
                <div class="col">
                    <div class="card shadow-sm"> <svg aria-label="Placeholder: Thumbnail"
                            class="bd-placeholder-img card-img-top" height="225" preserveAspectRatio="xMidYMid slice"
                            role="img" width="100%" xmlns="http://www.w3.org/2000/svg">
                            <title>Placeholder</title>
                            <rect width="100%" height="100%" fill="#55595c"></rect><text x="50%" y="50%" fill="#eceeef"
                                dy=".3em">Thumbnail</text>
                        </svg>
                        <div class="card-body">
                            <p class="card-text">This is a wider card with supporting text below as a natural lead-in to
                                additional content. This content is a little bit longer.</p>
                            <div class="d-flex justify-content-between align-items-center">
                                <div class="btn-group"> <button type="button"
                                        class="btn btn-sm btn-outline-secondary">View</button> <button type="button"
                                        class="btn btn-sm btn-outline-secondary">Edit</button> </div> <small
                                    class="text-body-secondary">9 mins</small>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
 Bootstrap Tutorial
 2026-01-04 04:06:35
 แชร์หน้านี้:  

ข่าวบันเทิง