Bootstrap - Navs and Tabs (ID)

Pengenalan

Hai, para pengembang web yang bersemangat! Hari ini, kita akan mendalami salah satu komponen yang paling banyak digunakan dalam desain web: menu navigasi dan tab.Elemen ini seperti petunjuk jalan di website Anda, memandu pengguna ke berbagai bagian dan konten. Dengan komponen nav dan tab Bootstrap, kita dapat menciptakan sistem navigasi yang ramping dan responsif yang bekerja di semua perangkat. Jadi, mari kita roll up lengan dan mulai mengoding!

Bootstrap - Navs & tabs

Navigasi dasar

Ayo mulai dari dasar. Bootstrap menyediakan cara sederhana untuk menciptakan menu navigasi menggunakan kelas .nav. Ini adalah contoh dasar:

<ul class="nav">
<li class="nav-item">
<a class="nav-link active" href="#">Beranda</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Tentang</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Layanan</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Kontak</a>
</li>
</ul>

Kode ini menciptakan daftar horisontal dari tautan navigasi. Kelas active menyorot halaman saat ini, sedangkan kelas disabled memabarkan tautan yang saat ini tidak dapat diklik.

Style yang tersedia

Bootstrap menawarkan berbagai style untuk nav Anda. Mari kita lihat dua style yang populer:

Tab navigasi

<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" href="#">Beranda</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Profil</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pesan</a>
</li>
</ul>

Ini menciptakan menu navigasi berbentuk tab, yang sempurna untuk mengatur konten ke dalam berbagai seksi.

Tab pil

<ul class="nav nav-pills">
<li class="nav-item">
<a class="nav-link active" href="#">Beranda</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Profil</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pesan</a>
</li>
</ul>

Style pil memberikan penampilan yang lebih mirip tombol bagi tautan navigasi Anda.

Penjajaran horizontal

Anda dapat mudah mengubah penjajaran item nav Anda. Ini adalah cara:

<ul class="nav justify-content-center">
<!-- Item nav di sini -->
</ul>

<ul class="nav justify-content-end">
<!-- Item nav di sini -->
</ul>

Kelas justify-content-center memusatkan item nav, sedangkan justify-content-end mengalign item ke kanan.

Menggunakan utilitas fleks

Utilitas fleks Bootstrap memberikan Anda kendali yang lebih banyak atas tata letak nav Anda:

<nav class="nav flex-column">
<a class="nav-link active" href="#">Aktif</a>
<a class="nav-link" href="#">Tautan</a>
<a class="nav-link" href="#">Tautan</a>
<a class="nav-link disabled" href="#">Nonaktif</a>
</nav>

Ini menciptakan menu navigasi vertikal menggunakan kelas flex-column.

Kesesuaian aksesibilitas

Saat membuat nav, sangat penting untuk mempertimbangkan aksesibilitas. Gunakan elemen <nav> di tempat yang sesuai, dan tambahkan aria-current="page" ke item aktif:

<nav class="nav">
<a class="nav-link active" aria-current="page" href="#">Aktif</a>
<!-- Item nav lainnya -->
</nav>

Menggunakan dropdown

Nav dapat termasuk menu dropdown untuk struktur navigasi yang lebih kompleks:

<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" href="#">Aktif</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-expanded="false">Dropdown</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">Aksi</a></li>
<li><a class="dropdown-item" href="#">Aksi lainnya</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">Tautan terpisah</a></li>
</ul>
</li>
<!-- Item nav lainnya -->
</ul>

Kode ini menciptakan nav dengan menu dropdown. Atribut data-bs-toggle="dropdown" mengaktifkan fungsi dropdown.

Tab dengan dropdown

Anda juga dapat menambahkan dropdown di dalam nav berstyle tab:

<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" href="#">Aktif</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-expanded="false">Dropdown</a>
<ul class="dropdown-menu">
<!-- Item dropdown -->
</ul>
</li>
<!-- Item nav lainnya -->
</ul>

Tab pil dengan dropdown

Prinsip yang sama berlaku untuk nav berstyle pil:

<ul class="nav nav-pills">
<li class="nav-item">
<a class="nav-link active" href="#">Aktif</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-expanded="false">Dropdown</a>
<ul class="dropdown-menu">
<!-- Item dropdown -->
</ul>
</li>
<!-- Item nav lainnya -->
</ul>

Perilaku JavaScript

Plugin JavaScript Bootstrap dapat menambah perilaku dinamis ke nav Anda. Ini adalah cara untuk menciptakan set tab dengan panel konten:

<ul class="nav nav-tabs" id="myTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link active" id="home-tab" data-bs-toggle="tab" data-bs-target="#home" type="button" role="tab" aria-controls="home" aria-selected="true">Beranda</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="profile-tab" data-bs-toggle="tab" data-bs-target="#profile" type="button" role="tab" aria-controls="profile" aria-selected="false">Profil</button>
</li>
</ul>
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">Konten beranda di sini...</div>
<div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">Konten profil di sini...</div>
</div>

Kode ini menciptakan set tab yang, saat diklik, menampilkan panel konten yang berbeda.

Aksesibilitas

Untuk membuat tab Anda aksesibel, gunakan atribut role, aria-controls, aria-selected, dan aria-labelledby seperti yang ditunjukkan dalam contoh sebelumnya.

Menggunakan atribut data

Atribut data memungkinkan Anda mengendalikan perilaku tab tanpa menulis JavaScript:

<ul class="nav nav-tabs" id="myTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link active" id="home-tab" data-bs-toggle="tab" data-bs-target="#home" type="button" role="tab" aria-controls="home" aria-selected="true">Beranda</button>
</li>
<!-- Tombol tab lainnya -->
</ul>

Atribut data-bs-toggle="tab" dan data-bs-target="#home" mengaktifkan fungsi tab tanpa JavaScript tambahan.

Melalui JavaScript

Anda juga dapat mengaktifkan tab melalui JavaScript:

var triggerTabList = [].slice.call(document.querySelectorAll('#myTab button'))
triggerTabList.forEach(function (triggerEl) {
var tabTrigger = new bootstrap.Tab(triggerEl)

triggerEl.addEventListener('click', function (event) {
event.preventDefault()
tabTrigger.show()
})
})

Kode ini menambahkan event listener klik ke setiap tombol tab, mengaktifkan tab yang sesuai saat diklik.

Efect fade

Untuk menambahkan efek fade ke tab Anda, gunakan kelas fade:

<div class="tab-content">
<div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">...</div>
<div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">...</div>
</div>

Ini menciptakan efek transisi yang halus saat berpindah antar tab.

Dan itu saja! Anda telah belajar bagaimana menciptakan dan menyesuaikan menu navigasi dan tab menggunakan Bootstrap. Ingat, latihan membuat sempurna, jadi cobalah untuk mencoba komponen ini dalam proyek Anda sendiri. Selamat coding!

Metode Deskripsi
Tab.getInstance(element) Mendapatkan instance tab yang terkait dengan elemen DOM
Tab.getOrCreateInstance(element) Mengembalikan instance tab yang terkait dengan elemen DOM atau menciptakan yang baru
show() Memilih tab yang diberikan dan menampilkan panel yang terkait
dispose() Menghancurkan tab elemen

Credits: Image by storyset