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

วิธีสร้าง Image Overlay Title (หัวข้อทับรูป) เมื่อ Hover ด้วย CSS

สร้าง Overlay แสดงหัวข้อ (Title) ขึ้นจากด้านล่างรูปภาพเมื่อ Hover ใช้ bottom: 0 และ height: auto ขยายจากล่างขึ้นบน

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

<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> * {box-sizing: border-box;} .card-container {    position: relative;    width: 50%; } .image {    display: block;    width: 100%;    height: auto; } .overlay {    position: absolute;    bottom: 0;    background: rgba(48, 9, 155, 0.5);    width: 78%;    transition: .5s ease;    opacity:0;    color: rgb(251, 255, 0);    font-size: 25px;    font-weight: bolder;    padding: 20px;    text-align: center; } .card-container:hover .overlay {    opacity: 1; } </style> </head> <body> <h2>Image Overlay Title Example</h2> <div class="card-container"> <img src="https://i.picsum.photos/id/237/536/354.jpg" > <div class="overlay">Dog</div> </div> </body> </html>

คุณสมบัติเฉพาะ

  • width: 78% - ไม่เต็มความกว้าง มี Margin ด้านข้าง
  • bottom: 0 - ติดขอบล่าง
  • opacity: 0 -> 1 - Fade In จากโปร่งใสเป็นมองเห็น
  • transition: .5s ease - Animation สลม
  • background: rgba(48, 9, 155, 0.5) - สีม่วงโปร่งใส 50%

ขยาย: Slide Up Effect

.overlay {
  bottom: 0;
  transform: translateY(100%); /* ซ่อนอยู่ข้างล่าง */
  transition: transform .5s, opacity .5s;
}
.card-container:hover .overlay {
  opacity: 1;
  transform: translateY(0); /* ขยับขึ้นมา */
}

ผลลัพธ์

รูปสุนัข ปกติไม่มีอะไร Hover -> แถบสีม่วงโปร่งใสขึ้นจากล่าง เขียน "Dog" สีเหลือง ตรงกลาง