Pelajari cara menambahkan menu dropdown di dalam navigasi samping (sidenav) menggunakan CSS dan JavaScript.
Section Artikel
Contoh:
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <style> body { font-family: "Lato", sans-serif; } /* Sidenav Fixed, tinggi penuh */ .sidenav { height: 100%; width: 200px; position: fixed; z-index: 1; top: 0; left: 0; background-color: #111; overflow-x: hidden; padding-top: 20px; } /* Style link sidenav dan tombol dropdown */ .sidenav a, .dropdown-btn { padding: 6px 8px 6px 16px; text-decoration: none; font-size: 20px; color: #818181; display: block; border: none; background: none; width: 100%; text-align: left; cursor: pointer; outline: none; } /* Saat mengarahkan mouse */ .sidenav a:hover, .dropdown-btn:hover { color: #f1f1f1; } /* Konten Utama */ .main { margin-left: 200px; /* Sama dengan lebar sidenav */ font-size: 20px; /* Teks yang ditingkatkan untuk mengaktifkan pengguliran */ padding: 0px 10px; } /* Tambahkan kelas active ke tombol dropdown active */ .active { background-color: green; color: white; } /* Kontainer dropdown (disembunyikan secara default). Opsional: tambahkan warna background yang lebih terang dan beberapa padding kiri untuk mengubah desain konten dropdown */ .dropdown-container { display: none; background-color: #262626; padding-left: 8px; } /* Opsional: Beri style ikon sisipan */ .fa-caret-down { float: right; padding-right: 8px; } /* Query media untuk responsif */ @media screen and (max-height: 450px) { .sidenav {padding-top: 15px;} .sidenav a {font-size: 18px;} } </style> </head> <body> <div class="sidenav"> <a href="#about">About</a> <a href="#services">Services</a> <a href="#clients">Clients</a> <a href="#contact">Contact</a> <button class="dropdown-btn">Dropdown <i class="fa fa-caret-down"></i> </button> <div class="dropdown-container"> <a href="#">Link 1</a> <a href="#">Link 2</a> <a href="#">Link 3</a> </div> <a href="#contact">Search</a> </div> <div class="main"> <h2>Sidebar Dropdown</h2> <p>Klik pada tombol dropdown untuk membuka menu dropdown di dalam navigasi samping.</p> <p>Sidebar dengan tinggi penuh (100%) dan selalu ditampilkan.</p> <p>Ini teks ini teks..</p> </div> <script> /* Ulangi semua tombol dropdown untuk beralih antara menyembunyikan dan menampilkan konten dropdown - Ini memungkinkan pengguna untuk memiliki beberapa dropdown tanpa konflik*/ var dropdown = document.getElementsByClassName("dropdown-btn"); var i; for (i = 0; i < dropdown.length; i++) { dropdown[i].addEventListener("click", function() { this.classList.toggle("active"); var dropdownContent = this.nextElementSibling; if (dropdownContent.style.display === "block") { dropdownContent.style.display = "none"; } else { dropdownContent.style.display = "block"; } }); } </script> </body> </html>
Buat Sidebar Dropdown
Langkah 1) Tambahkan HTML
Contoh:
<div class="sidenav"> <a href="#about">About</a> <a href="#services">Services</a> <a href="#clients">Clients</a> <a href="#contact">Contact</a> <button class="dropdown-btn">Dropdown <i class="fa fa-caret-down"></i> </button> <div class="dropdown-container"> <a href="#">Link 1</a> <a href="#">Link 2</a> <a href="#">Link 3</a> </div> <a href="#contact">Search</a> </div>
Penjelasan Contoh
Gunakan elemen apa pun untuk membuka menu dropdown, misalnya <button> , elemen <a> atau <p>.
Gunakan elemen kontainer (seperti <div>) untuk membuat menu dropdown dan menambahkan link dropdown di dalamnya. Kami akan menggunakan style yang sama untuk semua link di dalam sidenav.
Langkah 2) Tambahkan CSS
Contoh:
/* Sidenav Fixed, Tinggi penuh */ .sidenav { height: 100%; width: 200px; position: fixed; z-index: 1; top: 0; left: 0; background-color: #111; overflow-x: hidden; padding-top: 20px; } /* Beri style pada link sidenav dan tombol dropdown */ .sidenav a, .dropdown-btn { padding: 6px 8px 6px 16px; text-decoration: none; font-size: 20px; color: #818181; display: block; border: none; background: none; width:100%; text-align: left; cursor: pointer; outline: none; } /* Saat mengarahkan mouse */ .sidenav a:hover, .dropdown-btn:hover { color: #f1f1f1; } /* Konten Utama */ .main { margin-left: 200px; /* Sama dengan lebar sidenav */ font-size: 20px; /* Teks yang ditingkatkan untuk mengaktifkan pengguliran */ padding: 0px 10px; } /* Tambahkan kelas active ke tombol dropdown active */ .active { background-color: green; color: white; } /* Kontainer dropdown (disembunyikan secara default). Opsional: tambahkan warna background yang lebih terang dan beberapa padding kiri untuk mengubah desain konten dropdown */ .dropdown-container { display: none; background-color: #262626; padding-left: 8px; } /* Opsional: Beri style ikon sisipan */ .fa-caret-down { float: right; padding-right: 8px; } /* Query media untuk responsif */ @media screen and (max-height: 450px) { .sidenav {padding-top: 15px;} .sidenav a {font-size: 18px;} }
Langkah 3) Tambahkan JavaScript
Contoh:
/* Ulangi semua tombol dropdown untuk beralih antara menyembunyikan dan menampilkan konten dropdown - Ini memungkinkan pengguna untuk memiliki beberapa dropdown tanpa konflik*/ var dropdown = document.getElementsByClassName("dropdown-btn"); var i; for (i = 0; i < dropdown.length; i++) { dropdown[i].addEventListener("click", function() { this.classList.toggle("active"); var dropdownContent = this.nextElementSibling; if (dropdownContent.style.display === "block") { dropdownContent.style.display = "none"; } else { dropdownContent.style.display = "block"; } }); }