Bootstrap - Navs and Tabs

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 mirip dengan 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 genggam lengan dan mulai mengoding!

Bootstrap - Navs & tabs

Navigasi dasar

mari 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="#">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">About</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Services</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Contact</a>
</li>
</ul>

Kode ini menciptakan daftar horisontal dari tautan navigasi. Kelas active menandai halaman saat ini, sedangkan kelas disabled mengabu-abukan tautan yang saat ini tidak dapat diklik.

gaya yang tersedia

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

Nav tabs

<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" href="#">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Profile</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Messages</a>
</li>
</ul>

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

Nav pills

<ul class="nav nav-pills">
<li class="nav-item">
<a class="nav-link active" href="#">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Profile</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Messages</a>
</li>
</ul>

Gaya pills memberikan penampilan yang lebih seperti tombol ke tautan navigasi Anda.

Ratakan horizontal

Anda dapat mudah mengubah rataan 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 menengahkan item nav, sedangkan justify-content-end meratakan item ke kanan.

Menggunakan utilitas fleks

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

<nav class="nav flex-column">
<a class="nav-link active" href="#">Active</a>
<a class="nav-link" href="#">Link</a>
<a class="nav-link" href="#">Link</a>
<a class="nav-link disabled" href="#">Disabled</a>
</nav>

Ini menciptakan menu navigasi vertikal menggunakan kelas flex-column.

Mengenai 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="#">Active</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="#">Active</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="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</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="#">Separated link</a></li>
</ul>
</li>
<!-- Item nav lainnya -->
</ul>

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

Tabs dengan dropdown

Anda juga dapat menambahkan dropdown di nav gaya tab:

<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" href="#">Active</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>

Pills dengan dropdown

Prinsip yang sama berlaku untuk nav gaya pill:

<ul class="nav nav-pills">
<li class="nav-item">
<a class="nav-link active" href="#">Active</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">Home</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">Profile</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 Home di sini...</div>
<div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">Konten Profile 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 mengontrol 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">Home</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 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 beralih 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 meng eksperimenkan komponen ini dalam proyek Anda sendiri. Selamat coding!

Credits: Image by storyset