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

การ Crop รูปภาพด้วย CSS: 3 วิธีหลัก (object-fit, background-image, overflow)

มีหลายวิธี crop รูปภาพใน CSS วิธีที่ง่ายและมีประสิทธิภาพที่สุดคือ 3 วิธีนี้:

1. ใช้ object-fit

object-fit: cover crop รูปภาพง่ายๆ พร้อมรักษาอัตราส่วน (aspect ratio)

ใช้ร่วมกับ object-position ลองตั้ง object-fit: none และ object-position: 50% 50% จะจัดกึ่งกลางคอนเทนเนอร์ ตัวเลขแรก = ระยะจากซ้าย ตัวที่สอง = ระยะจากบน

2. ใช้ background-image

ตั้งค่า <div> ให้มี background-image: url(...) และ background-size: cover เพื่อ crop รักษาอัตราส่วน background-position เริ่มต้นคือ top left

ข้อจำกัด: accessibility — background-image อาจไม่ถูกอ่านโดย screen reader หากรูปสำคัญ ควรอธิบายเนื้อหารูปในหน้า หรือเลือกวิธีอื่น

3. ใช้ width, height, margin และ overflow

บนคอนเทนเนอร์ของ <img> (มักเป็น <div>) ตั้ง position: relative และ overflow: hidden — relative สร้างขอบเขต overflow ซ่อนส่วนที่ล้น

ตัวอย่างโค้ดครบถ้วน

<style> div > div { max-width: 500px; width: 100%; position: relative; overflow: hidden; } img { width: 100%; } div.crop-top img { margin: -20% auto 0; } div.crop-bottom img { margin: 0 auto -20%; } div.crop-vertically img { margin: -20% auto -20%; } div.crop-right img { width: 120%; margin: 0 -20% 0 0; } div.crop-left img { width: 120%; margin: 0 0 0 -20%; } div.crop-horizontally img { width: 180%; margin: 0 -20% 0; height: 500px; } div.crop-square img { width: 100%; } </style>

ดู class name ใน HTML และ CSS ที่ตรงกัน เพื่อเข้าใจว่า margin ถูกตั้งอย่างไรเพื่อแสดงส่วนของภาพที่ต้องการ

สรุป

3 วิธีหลัก crop รูปภาพ CSS: object-fit (ทันสมัย/ง่ายที่สุด), background-image (แต่มีปัญหา accessibility), และ overflow: hidden กับ margin (คลาสสิก/ควบคุมได้ละเอียด)