สร้าง Navbar แบบ Responsive พร้อมเมนู Dropdown ด้วย HTML, CSS และ Font Awesome

ในบทเรียนนี้ คุณจะได้เรียนรู้วิธีสร้างแถบนำทาง (Navigation Bar) ที่ตอบสนองต่อทุกขนาดหน้าจอ ตั้งแต่เริ่มต้นด้วย HTML และ CSS เพียงอย่างเดียว Navbar ที่เราจะทำประกอบไปด้วยเมนูแบบ Dropdown, เอฟเฟกต์เมื่อวางเมาส์ (hover effects) และไอคอนสำหรับสลับเมนูบนมือถือที่ใช้ Font Awesome เข้ามาช่วย เราจะอธิบายขั้นตอนการจัดรูปแบบลิงก์นำทาง การเพิ่มเมนูย่อย และการใช้ Media Queries เพื่อปรับเลย์เอาต์ให้เหมาะสมกับหน้าจอที่เล็กลง เมื่อทำเสร็จ คุณจะได้ Navbar ที่ดูทันสมัย ใช้งานง่าย และทำงานได้อย่างราบรื่นทั้งบนเดสก์ท็อปและอุปกรณ์พกพา

โค้ด CSS
body {margin:0;font-family:Arial}

.topnav {
  overflow: hidden;
  background-color: #333;
}

.topnav a {
  float: left;
  display: block;
  color: #f2f2f2;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
  font-size: 17px;
}

.active {
  background-color: #6610f2;
  color: white;
}

.topnav .icon {
  display: none;
}

.dropdown {
  float: left;
  overflow: hidden;
}

.dropdown .dropbtn {
  font-size: 17px;    
  border: none;
  outline: none;
  color: white;
  padding: 14px 16px;
  background-color: inherit;
  font-family: inherit;
  margin: 0;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}

.dropdown-content a {
  float: none;
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
  text-align: left;
}

.topnav a:hover, .dropdown:hover .dropbtn {
  background-color: #555;
  color: white;
}

.dropdown-content a:hover {
  background-color: #ddd;
  color: black;
}

.dropdown:hover .dropdown-content {
  display: block;
}

@media screen and (max-width: 600px) {
  .topnav a:not(:first-child), .dropdown .dropbtn {
    display: none;
  }
  .topnav a.icon {
    float: right;
    display: block;
  }
}

@media screen and (max-width: 600px) {
  .topnav.responsive {position: relative;}
  .topnav.responsive .icon {
    position: absolute;
    right: 0;
    top: 0;
  }
  .topnav.responsive a {
    float: none;
    display: block;
    text-align: left;
  }
  .topnav.responsive .dropdown {float: none;}
  .topnav.responsive .dropdown-content {position: relative;}
  .topnav.responsive .dropdown .dropbtn {
    display: block;
    width: 100%;
    text-align: left;
  }
}
โค้ด HTML
<div class="topnav" id="myTopnav">
  <a href="#home" class="active">Home</a>
  <a href="#news">News</a>
  <a href="#contact">Contact</a>
  <div class="dropdown">
    <button class="dropbtn">Dropdown 
      <i class="fa fa-caret-down"></i>
    </button>
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div> 
  <a href="#about">About</a>
  <a href="javascript:void(0);" style="font-size:15px;" class="icon" onclick="myFunction()">&#9776;</a>
</div>

<div style="padding-left:16px">
  <h2>Responsive Topnav with Dropdown</h2>
  <p>Resize the browser window to see how it works.</p>
  <p>Hover over the dropdown button to open the dropdown menu.</p>
</div>
โค้ด JavaScript
function myFunction() {
  var x = document.getElementById("myTopnav");
  if (x.className === "topnav") {
    x.className += " responsive";
  } else {
    x.className = "topnav";
  }
}
 CSS Tutorial
 2025-12-07 06:42:23
 แชร์หน้านี้:  

ข่าวบันเทิง