navigasi
Dokumentasi dan contoh cara menggunakan komponen navigasi yang disertakan pada Bootstrap.
Navigasi yang tersedia di Bootstrap berbagi markup dan gaya umum, dari .nav
kelas dasar hingga status aktif dan nonaktif. Tukar kelas pengubah untuk beralih di antara setiap gaya.
Komponen dasar .nav
dibangun dengan flexbox dan memberikan fondasi yang kuat untuk membangun semua jenis komponen navigasi. Ini mencakup beberapa penggantian gaya (untuk bekerja dengan daftar), beberapa bantalan tautan untuk area hit yang lebih besar, dan gaya dasar yang dinonaktifkan.
Komponen dasar .nav
tidak menyertakan .active
status apa pun. Contoh berikut menyertakan kelas, terutama untuk menunjukkan bahwa kelas khusus ini tidak memicu gaya khusus apa pun.
<ul class="nav">
<li class="nav-item">
<a class="nav-link active" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
Kelas digunakan di seluruh, sehingga markup Anda bisa sangat fleksibel. Gunakan <ul>
s seperti di atas, atau gulung sendiri dengan katakan <nav>
elemen. Karena .nav
kegunaan display: flex
, tautan nav berperilaku sama seperti item nav, tetapi tanpa markup tambahan.
<nav class="nav">
<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>
Ubah gaya .nav
komponen s dengan pengubah dan utilitas. Campur dan cocokkan sesuai kebutuhan, atau buat sendiri.
Ubah perataan horizontal nav Anda dengan utilitas flexbox . Secara default, navigasi rata kiri, tetapi Anda dapat dengan mudah mengubahnya menjadi rata tengah atau kanan.
Dipusatkan dengan .justify-content-center
:
<ul class="nav justify-content-center">
<li class="nav-item">
<a class="nav-link active" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
Rata kanan dengan .justify-content-end
:
<ul class="nav justify-content-end">
<li class="nav-item">
<a class="nav-link active" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
Tumpuk navigasi Anda dengan mengubah arah item fleksibel dengan .flex-column
utilitas. Perlu menumpuknya di beberapa viewport tetapi tidak di yang lain? Gunakan versi responsif (mis., .flex-sm-column
).
<ul class="nav flex-column">
<li class="nav-item">
<a class="nav-link active" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
Seperti biasa, navigasi vertikal juga dimungkinkan tanpa <ul>
s.
<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>
Mengambil navigasi dasar dari atas dan menambahkan .nav-tabs
kelas untuk menghasilkan antarmuka tab. Gunakan mereka untuk membuat wilayah tab dengan plugin JavaScript tab kami .
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
Ambil HTML yang sama, tetapi gunakan .nav-pills
sebagai gantinya:
<ul class="nav nav-pills">
<li class="nav-item">
<a class="nav-link active" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
Paksa .nav
konten Anda untuk memperluas lebar penuh yang tersedia salah satu dari dua kelas pengubah. Untuk mengisi semua ruang yang tersedia secara proporsional dengan .nav-item
s Anda, gunakan .nav-fill
. Perhatikan bahwa semua ruang horizontal terisi, tetapi tidak setiap item navigasi memiliki lebar yang sama.
<ul class="nav nav-pills nav-fill">
<li class="nav-item">
<a class="nav-link active" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Longer nav link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
Saat menggunakan <nav>
navigasi berbasis, pastikan untuk menyertakan .nav-item
pada jangkar.
<nav class="nav nav-pills nav-fill">
<a class="nav-item nav-link active" href="#">Active</a>
<a class="nav-item nav-link" href="#">Link</a>
<a class="nav-item nav-link" href="#">Link</a>
<a class="nav-item nav-link disabled" href="#">Disabled</a>
</nav>
Untuk elemen dengan lebar yang sama, gunakan .nav-justified
. Semua ruang horizontal akan ditempati oleh tautan nav, tetapi tidak seperti di .nav-fill
atas, setiap item nav akan memiliki lebar yang sama.
<nav class="nav nav-pills nav-justified">
<a class="nav-link active" href="#">Active</a>
<a class="nav-link" href="#">Longer nav link</a>
<a class="nav-link" href="#">Link</a>
<a class="nav-link disabled" href="#">Disabled</a>
</nav>
Mirip dengan .nav-fill
contoh menggunakan <nav>
navigasi berbasis, pastikan untuk menyertakan .nav-item
pada jangkar.
<nav class="nav nav-pills nav-justified">
<a class="nav-item nav-link active" href="#">Active</a>
<a class="nav-item nav-link" href="#">Link</a>
<a class="nav-item nav-link" href="#">Link</a>
<a class="nav-item nav-link disabled" href="#">Disabled</a>
</nav>
Jika Anda memerlukan variasi navigasi responsif, pertimbangkan untuk menggunakan serangkaian utilitas flexbox . Meskipun lebih bertele-tele, utilitas ini menawarkan penyesuaian yang lebih besar di seluruh breakpoint responsif. Pada contoh di bawah ini, nav kita akan ditumpuk pada breakpoint terendah, kemudian beradaptasi dengan layout horizontal yang mengisi lebar yang tersedia mulai dari breakpoint kecil.
<nav class="nav nav-pills flex-column flex-sm-row">
<a class="flex-sm-fill text-sm-center nav-link active" href="#">Active</a>
<a class="flex-sm-fill text-sm-center nav-link" href="#">Link</a>
<a class="flex-sm-fill text-sm-center nav-link" href="#">Link</a>
<a class="flex-sm-fill text-sm-center nav-link disabled" href="#">Disabled</a>
</nav>
Jika Anda menggunakan navs untuk menyediakan bilah navigasi, pastikan untuk menambahkan a role="navigation"
ke wadah induk paling logis dari <ul>
, atau bungkus <nav>
elemen di seluruh navigasi. Jangan menambahkan peran <ul>
itu sendiri, karena ini akan mencegahnya diumumkan sebagai daftar aktual oleh teknologi bantu.
Perhatikan bahwa bilah navigasi, meskipun secara visual ditata sebagai tab dengan .nav-tabs
kelas, tidak boleh diberikan role="tablist"
, role="tab"
atau role="tabpanel"
atribut. Ini hanya sesuai untuk antarmuka tab dinamis, seperti yang dijelaskan dalam Praktik Penulisan WAI ARIA . Lihat perilaku JavaScript untuk antarmuka tab dinamis di bagian ini sebagai contoh.
Tambahkan menu dropdown dengan sedikit tambahan HTML dan plugin JavaScript dropdown .
<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-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Dropdown</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Separated link</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
<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-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Dropdown</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Separated link</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
Gunakan plugin tab JavaScript—termasuk satu per satu atau melalui bootstrap.js
file yang dikompilasi—untuk memperluas tab navigasi dan pil kami untuk membuat panel konten lokal yang dapat ditabulasi, bahkan melalui menu tarik-turun.
Jika Anda membuat JavaScript kami dari sumber, itu memerlukanutil.js
.
Antarmuka tab dinamis, seperti yang dijelaskan dalam WAI ARIA Authoring Practices , memerlukan role="tablist"
, role="tab"
, role="tabpanel"
, dan aria-
atribut tambahan untuk menyampaikan struktur, fungsionalitas, dan statusnya saat ini kepada pengguna teknologi bantu (seperti pembaca layar).
Perhatikan bahwa antarmuka tab dinamis tidak boleh berisi menu tarik-turun, karena ini menyebabkan masalah kegunaan dan aksesibilitas. Dari perspektif kegunaan, fakta bahwa elemen pemicu tab yang saat ini ditampilkan tidak langsung terlihat (karena berada di dalam menu tarik-turun yang tertutup) dapat menyebabkan kebingungan. Dari sudut pandang aksesibilitas, saat ini tidak ada cara yang masuk akal untuk memetakan konstruksi semacam ini ke pola WAI ARIA standar, yang berarti bahwa hal itu tidak dapat dengan mudah dipahami oleh pengguna teknologi bantu.
Raw denim Anda mungkin belum pernah mendengar tentang celana pendek jean Austin. Nesciunt tofu stumptown aliqua, pembersih master synth retro. Kumis klise tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Sweater Cosby eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan pakaian amerika, butcher voluptate nisi qui.
Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.
Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.
Untuk membantu memenuhi kebutuhan Anda, ini berfungsi dengan <ul>
markup berbasis, seperti yang ditunjukkan di atas, atau dengan markup "roll your own" yang sewenang-wenang. Perhatikan bahwa jika Anda menggunakan <nav>
, Anda tidak boleh menambahkannya role="tablist"
secara langsung, karena ini akan menggantikan peran asli elemen sebagai tengara navigasi. Alih-alih, alihkan ke elemen alternatif (dalam contoh di bawah, sederhana <div>
) dan bungkus di <nav>
sekitarnya.
Plugin tab juga berfungsi dengan pil.
Consequat occaecat ullamco amet non eiusmod nostrud dolore irureincididunt est duis anim sunt officia. Fugiat velit proident aliquip nisi inciddunt nostrud exercitation proident est nisi. Irure magna elit commodo anim ex veniam culpa eiusmod id nostrud sit cupidatat in veniam ad. Eiusmod consequat eu adipisicing minim anim aliquip cupidatat culpa kecuali quis. Occaecat sit eu exercitation irure Lorem incidudnt nostrud.
Ad pariatur nostrud pariatur exercitation ipsum ipsum culpa mollit commodo mollit ex. Aute sunt incididunt amet commodo est sint nisi deserunt pariatur do. Aliquip ex eiusmod voluptate exercitation cillum id incididunt elit sunt. Qui minim sit magna Lorem id et dolore velit Lorem amet exercitation duis deserunt. Anim id labore elit adipisicing ut in id occaecat pariatur ut ullamco ea tempor duis.
Est quis nulla laborum officia ad nisi ex nostrud culpa Lorem excepteur aliquip dolor aliqua irure ex. Nulla ut duis ipsum nisi elit fugiat commodo sunt reprehenderit laborum veniam eu veniam. Eiusmod minim exercitation fugiat irure ex labore incididunt do fugiat commodo aliquip sit id deserunt reprehenderit aliquip nostrud. Amet ex cupidatat excepteur aute veniam incididunt mollit cupidatat esse irure officia elit do ipsum ullamco Lorem. Ullamco ut ad minim do mollit labore ipsum laboris ipsum commodo sunt tempor enim incididunt. Commodo quis sunt dolore aliquip aute tempor irure magna enim minim reprehenderit. Ullamco consectetur culpa veniam sint cillum aliqua incididunt velit ullamco sunt ullamco quis quis commodo voluptate. Mollit nulla nostrud adipisicing aliqua cupidatat aliqua pariatur mollit voluptate voluptate consequat non.
Dan dengan pil vertikal.
Cillum ad ut irure tempor velit nostrud occaecat ullamco aliqua anim Lorem sint. Veniam sint duis incididunt do esse magna mollit exceptioneur laborum qui. Id id reprehenderit sit est eu aliqua occaecat quis et velit kecuali laborum mollit dolore eiusmod. Ipsum dolor in occaecat commodo et voluptate minim reprehenderit mollit pariatur. Deserunt non laborum enim et cillum eu deserunt exceptioneur ea insidendidunt minim occaecat.
Culpa dolor voluptate do laboris laboris irure reprehenderit id incididunt duis pariatur mollit aute magna pariatur consectetur. Eu veniam duis non ut dolor deserunt commodo et minim in quis laboris ipsum velit id veniam. Quis ut consectetur adipisicing officia excepteur non sit. Ut et elit aliquip labore Lorem enim eu. Ullamco mollit occaecat dolore ipsum id officia mollit qui esse anim eiusmod do sint minim consectetur qui.
Fugiat id quis dolor culpa eiusmod anim velit excepteur proident dolor aute qui magna. Ad proident laboris ullamco esse anim Lorem Lorem veniam quis Lorem irure occaecat velit nostrud magna nulla. Velit et et proident Lorem do ea tempor officia dolor. Reprehenderit Lorem aliquip labore est magna commodo est ea veniam consectetur.
Eu dolore ea ullamco dolore Lorem id cupidatat excepteur reprehenderit consectetur elit id dolor proident in cupidatat officia. Voluptate excepteur commodo labore nisi cillum duis aliqua do. Aliqua amet qui mollit consectetur nulla mollit velit aliqua veniam nisi id do Lorem deserunt amet. Culpa ullamco sit adipisicing labore officia magna elit nisi in aute tempor commodo eiusmod.
Anda dapat mengaktifkan navigasi tab atau pil tanpa menulis JavaScript apa pun hanya dengan menentukan data-toggle="tab"
atau data-toggle="pill"
pada suatu elemen. Gunakan atribut data ini pada .nav-tabs
atau .nav-pills
.
Aktifkan tab yang dapat ditabulasi melalui JavaScript (setiap tab harus diaktifkan satu per satu):
Anda dapat mengaktifkan tab individual dengan beberapa cara:
Untuk membuat tab memudar, tambahkan .fade
ke masing-masing .tab-pane
. Panel tab pertama juga harus .show
membuat konten awal terlihat.
Metode dan transisi asinkron
Semua metode API tidak sinkron dan memulai transisi . Mereka kembali ke penelepon segera setelah transisi dimulai tetapi sebelum berakhir . Selain itu, pemanggilan metode pada komponen transisi akan diabaikan .
Lihat dokumentasi JavaScript kami untuk informasi lebih lanjut.
Mengaktifkan elemen tab dan wadah konten. Tab harus memiliki a data-target
atau href
penargetan simpul penampung di DOM.
Memilih tab yang diberikan dan menunjukkan panel yang terkait. Tab lain yang sebelumnya dipilih menjadi tidak dipilih dan panel terkaitnya disembunyikan. Kembali ke pemanggil sebelum panel tab benar-benar ditampilkan (yaitu sebelum shown.bs.tab
peristiwa terjadi).
Menghancurkan tab elemen.
Saat menampilkan tab baru, peristiwa diaktifkan dalam urutan berikut:
hide.bs.tab
(pada tab aktif saat ini)show.bs.tab
(pada tab yang akan ditampilkan)hidden.bs.tab
(pada tab aktif sebelumnya, sama dengan tabhide.bs.tab
acara)shown.bs.tab
(pada tab yang baru saja ditampilkan yang baru aktif, yang sama dengan untukshow.bs.tab
acara tersebut)
Jika tidak ada tab yang sudah aktif, maka peristiwa hide.bs.tab
and hidden.bs.tab
tidak akan diaktifkan.
Jenis Acara | Keterangan |
---|---|
show.bs.tab | Acara ini diaktifkan pada tampilan tab, tetapi sebelum tab baru ditampilkan. Gunakan event.target dan event.relatedTarget untuk menargetkan tab aktif dan tab aktif sebelumnya (jika tersedia). |
ditampilkan.bs.tab | Acara ini diaktifkan pada tampilan tab setelah tab ditampilkan. Gunakan event.target dan event.relatedTarget untuk menargetkan tab aktif dan tab aktif sebelumnya (jika tersedia). |
sembunyikan.bs.tab | Acara ini diaktifkan ketika tab baru akan ditampilkan (dan dengan demikian tab aktif sebelumnya disembunyikan). Gunakan event.target dan event.relatedTarget untuk menargetkan masing-masing tab aktif saat ini dan tab baru yang akan segera aktif. |
tersembunyi.bs.tab | Acara ini diaktifkan setelah tab baru ditampilkan (dan dengan demikian tab aktif sebelumnya disembunyikan). Gunakan event.target dan event.relatedTarget untuk menargetkan tab aktif sebelumnya dan tab aktif baru, masing-masing. |