Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> CSS

วิธีจัดรูปภาพเรียงติดกัน (Side by Side) ด้วย CSS

จัดรูปภาพให้เรียงติดกันแนวนอน (Side by Side) ใช้ Float Layout แบบคลาสสิก พร้อม Responsive Column

ตัวอย่างโค้ด

<!DOCTYPE html> <html> <head> <style> * {    box-sizing: border-box; } .imageColumn {    float: left;    width: 25%;    padding: 10px; } h1{    text-align: center; } </style> </head> <body> <h1>Images Aligned Side by Side example</h1> <div class="alignRow"> <div class="imageColumn"> <img src="https://i.picsum.photos/id/811/400/400.jpg" alt="Snow" style="width:100%"> </div> <div class="imageColumn"> <img src="https://i.picsum.photos/id/871/400/400.jpg" alt="Forest"> </div> <div class="imageColumn"> <img src="https://i.picsum.photos/id/471/400/400.jpg" alt="Mountains"> </div> <div class="imageColumn"> <img src="https://i.picsum.photos/id/271/400/400.jpg" alt="Snow"> </div> </div>> </body> </html>

โครงสร้าง

  • .imageColumn { float: left; width: 25%; padding: 10px; } - 4 คอลัมน์ (100%/25%=4)
  • img { width: 100%; } - รูปเต็มความกว้างคอลัมน์
  • box-sizing: border-box - Padding รวมใน Width ไม่ล้น
  • Container .alignRow ต้อง Clearfix (ตัวอย่างขาด: ต้องมี overflow: hidden หรือ ::after clearfix)

วิธีทันสมัย: Flexbox / Grid

/* Flexbox */
.alignRow { display: flex; flex-wrap: wrap; gap: 20px; }
.imageColumn { flex: 1 1 calc(25% - 20px); }

/* CSS Grid */
.alignRow { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
@media (max-width: 800px) { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 600px) { grid-template-columns: 1fr; }

ผลลัพธ์

รูป 4 รูปเรียงแนวนอน: หิมะ, ป่า, ภูเขา, หิมะ (อีกรูป) แต่ละรูปมี Padding 10px