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

วิธีเพิ่ม Navigation Menu บนรูปภาพ (Image Overlay Nav) ด้วย CSS

เทคนิคการวาง Navigation Bar บนรูปภาพพื้นหลัง (Hero Section) ใช้ position: relative บน Container และ position: absolute หรือ Flow ปกติภายใน

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

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> body{    margin:0px;    margin-top:10px;    padding: 0px; } nav{    width: 50%;    background-color: rgb(23, 104, 43);    overflow: auto;    height: auto; } .links {    display: inline-block;    text-align: center;    padding: 14px;    color: rgb(255, 255, 255);    text-decoration: none;    font-size: 17px; } .links:hover {    background-color: rgb(129, 123, 123); } .selected{    background-color: rgb(0, 56, 42); } .image-nav{    background:url('https://i.picsum.photos/id/652/1366/1366.jpg');    min-height: 400px;    padding: 20px;    background-position: center;    background-repeat: no-repeat;    background-size: cover;    width: 70%; } </style> </head> <body> <div class="image-nav"> <nav> <a class="links selected" href="#">Home</a> <a class="links" href="#">Login</a> <a class="links" href="#"> Register</a> <a class="links" href="#">Contact Us</a> <a class="links" href="#">More Info</a> </nav> </div> </body> </html>

คำอธิบาย

  • .image-nav - Container รูปพื้นหลัง ใช้ background-size: cover ครอบเต็มพื้นที่
  • min-height: 400px - ให้ความสูงขั้นต่ำ
  • nav { width: 50%; } - เมนูกว้างครึ่งหนึ่งของ Container
  • Navbar ไหลตาม Flow ปกติอยู่บนสุดของ Container

รูปแบบอื่น: Nav Overlay แบบ Absolute

.image-nav { position: relative; }
nav { position: absolute; top: 0; left: 0; right: 0; background: rgba(0,0,0,0.7); }

ทำให้ Nav ทับบนรูปภาพเต็มความกว้าง พื้นหลังโปร่งใส

ผลลัพธ์

รูปภาพพื้นหลังขนาดใหญ่ พร้อมแถบเมนูสีเขียวกว้าง 50% อยู่บนสุด