Nav og faner
Dokumentasjon og eksempler for hvordan du bruker Bootstraps medfølgende navigasjonskomponenter.
Basenav
Navigering tilgjengelig i Bootstrap deler generell markering og stiler, fra .nav
basisklassen til de aktive og deaktiverte tilstandene. Bytt modifikatorklasser for å bytte mellom hver stil.
Basekomponenten .nav
er bygget med flexbox og gir et sterkt grunnlag for å bygge alle typer navigasjonskomponenter. Den inkluderer noen stiloverstyringer (for å jobbe med lister), noe lenkepolstring for større treffområder og grunnleggende funksjonshemmede styling.
Basiskomponenten .nav
inkluderer ingen .active
tilstand. Følgende eksempler inkluderer klassen, hovedsakelig for å demonstrere at denne spesielle klassen ikke utløser noen spesiell styling.
For å formidle den aktive tilstanden til hjelpeteknologier, bruk aria-current
attributtet – bruk page
verdien for gjeldende side, eller true
for gjeldende element i et sett.
<ul class="nav">
<li class="nav-item">
<a class="nav-link active" aria-current="page" 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">Disabled</a>
</li>
</ul>
Klassene brukes hele veien, så merkingen din kan være superfleksibel. Bruk <ul>
s som ovenfor, <ol>
hvis rekkefølgen på varene dine er viktig, eller rull din egen med et <nav>
element. Fordi .nav
brukerne display: flex
oppfører seg på samme måte som nav-elementer, men uten den ekstra markeringen.
<nav class="nav">
<a class="nav-link active" aria-current="page" href="#">Active</a>
<a class="nav-link" href="#">Link</a>
<a class="nav-link" href="#">Link</a>
<a class="nav-link disabled">Disabled</a>
</nav>
Tilgjengelige stiler
Endre stilen til .nav
s-komponenten med modifikatorer og verktøy. Miks og match etter behov, eller bygg din egen.
Horisontal justering
Endre den horisontale justeringen av nav med flexbox-verktøy . Som standard er nav-er venstrejustert, men du kan enkelt endre dem til midt- eller høyrejustert.
Sentrert med .justify-content-center
:
<ul class="nav justify-content-center">
<li class="nav-item">
<a class="nav-link active" aria-current="page" 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">Disabled</a>
</li>
</ul>
Høyrejustert med .justify-content-end
:
<ul class="nav justify-content-end">
<li class="nav-item">
<a class="nav-link active" aria-current="page" 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">Disabled</a>
</li>
</ul>
Vertikal
Stable navigasjonen ved å endre retningen på flexelementet med .flex-column
verktøyet. Trenger du å stable dem på noen visningsporter, men ikke andre? Bruk de responsive versjonene (f.eks. .flex-sm-column
).
<ul class="nav flex-column">
<li class="nav-item">
<a class="nav-link active" aria-current="page" 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">Disabled</a>
</li>
</ul>
Som alltid er vertikal navigering også mulig uten <ul>
s.
<nav class="nav flex-column">
<a class="nav-link active" aria-current="page" href="#">Active</a>
<a class="nav-link" href="#">Link</a>
<a class="nav-link" href="#">Link</a>
<a class="nav-link disabled">Disabled</a>
</nav>
Faner
Tar den grunnleggende navigasjonen ovenfra og legger til .nav-tabs
klassen for å generere et fanebasert grensesnitt. Bruk dem til å lage tabellområder med JavaScript-plugin-modulen vår .
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" aria-current="page" 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">Disabled</a>
</li>
</ul>
Piller
Ta den samme HTML-en, men bruk .nav-pills
i stedet:
<ul class="nav nav-pills">
<li class="nav-item">
<a class="nav-link active" aria-current="page" 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">Disabled</a>
</li>
</ul>
Fyll og begrunn
Tving .nav
innholdet ditt til å utvide den fulle tilgjengelige bredden en av to modifikasjonsklasser. For å fylle all tilgjengelig plass proporsjonalt med dine .nav-item
s, bruk .nav-fill
. Legg merke til at all horisontal plass er opptatt, men ikke alle nav-elementer har samme bredde.
<ul class="nav nav-pills nav-fill">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Much 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">Disabled</a>
</li>
</ul>
Når du bruker en <nav>
-basert navigasjon, kan du trygt utelate .nav-item
siden det kun .nav-link
kreves for stylingelementer <a>
.
<nav class="nav nav-pills nav-fill">
<a class="nav-link active" aria-current="page" href="#">Active</a>
<a class="nav-link" href="#">Much longer nav link</a>
<a class="nav-link" href="#">Link</a>
<a class="nav-link disabled">Disabled</a>
</nav>
For elementer med lik bredde, bruk .nav-justified
. All horisontal plass vil bli okkupert av nav-lenker, men i motsetning til .nav-fill
ovennevnte vil hvert nav-element ha samme bredde.
<ul class="nav nav-pills nav-justified">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Much 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">Disabled</a>
</li>
</ul>
Ligner på .nav-fill
eksempelet med en <nav>
-basert navigasjon.
<nav class="nav nav-pills nav-justified">
<a class="nav-link active" aria-current="page" href="#">Active</a>
<a class="nav-link" href="#">Much longer nav link</a>
<a class="nav-link" href="#">Link</a>
<a class="nav-link disabled">Disabled</a>
</nav>
Jobber med flexverktøy
Hvis du trenger responsive nav-varianter, bør du vurdere å bruke en rekke flexbox-verktøy . Selv om de er mer detaljerte, tilbyr disse verktøyene større tilpasning på tvers av responsive bruddpunkter. I eksemplet nedenfor vil nav-en vår bli stablet på det laveste bruddpunktet, og deretter tilpasses det til en horisontal layout som fyller den tilgjengelige bredden fra det lille bruddpunktet.
<nav class="nav nav-pills flex-column flex-sm-row">
<a class="flex-sm-fill text-sm-center nav-link active" aria-current="page" href="#">Active</a>
<a class="flex-sm-fill text-sm-center nav-link" href="#">Longer nav 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">Disabled</a>
</nav>
Angående tilgjengelighet
Hvis du bruker nav for å gi en navigasjonslinje, må du sørge for å legge til en role="navigation"
i den mest logiske overordnede beholderen til <ul>
, eller omslutte et <nav>
element rundt hele navigasjonen. Ikke legg rollen til seg <ul>
selv, da dette vil forhindre at den blir annonsert som en faktisk liste av hjelpeteknologier.
Merk at navigasjonslinjer, selv om de er visuelt stilte som faner med .nav-tabs
klassen, ikke skal gis role="tablist"
, role="tab"
eller role="tabpanel"
attributter. Disse er kun egnet for dynamiske fanebaserte grensesnitt, som beskrevet i WAI ARIA Authoring Practices . Se JavaScript-atferd for dynamiske fanebaserte grensesnitt i denne delen for et eksempel. aria-current
Attributtet er ikke nødvendig på dynamiske fanegrensesnitt siden vår JavaScript håndterer den valgte tilstanden ved å legge til på aria-selected="true"
den aktive fanen.
Bruker rullegardinmenyene
Legg til rullegardinmenyer med litt ekstra HTML og JavaScript-plugin-modulen .
Faner med rullegardiner
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" aria-current="page" 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>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled">Disabled</a>
</li>
</ul>
Piller med dropdowns
<ul class="nav nav-pills">
<li class="nav-item">
<a class="nav-link active" aria-current="page" 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>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled">Disabled</a>
</li>
</ul>
Sass
Variabler
$nav-link-padding-y: .5rem;
$nav-link-padding-x: 1rem;
$nav-link-font-size: null;
$nav-link-font-weight: null;
$nav-link-color: $link-color;
$nav-link-hover-color: $link-hover-color;
$nav-link-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out;
$nav-link-disabled-color: $gray-600;
$nav-tabs-border-color: $gray-300;
$nav-tabs-border-width: $border-width;
$nav-tabs-border-radius: $border-radius;
$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color;
$nav-tabs-link-active-color: $gray-700;
$nav-tabs-link-active-bg: $body-bg;
$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg;
$nav-pills-border-radius: $border-radius;
$nav-pills-link-active-color: $component-active-color;
$nav-pills-link-active-bg: $component-active-bg;
JavaScript-adferd
Bruk JavaScript-plugin-fanen – inkluder den individuelt eller gjennom den kompilerte bootstrap.js
filen – for å utvide våre navigasjonsfaner og -piller til å lage tabulatorer med lokalt innhold.
Dynamiske fanegrensesnitt, som beskrevet i WAI ARIA Authoring Practices , krever role="tablist"
, role="tab"
, role="tabpanel"
, og tilleggsattributter aria-
for å formidle deres struktur, funksjonalitet og nåværende tilstand til brukere av hjelpeteknologier (som skjermlesere). Som en beste praksis anbefaler vi å bruke <button>
elementer for fanene, siden disse er kontroller som utløser en dynamisk endring, i stedet for linker som navigerer til en ny side eller plassering.
Merk at dynamiske fanegrensesnitt ikke bør inneholde rullegardinmenyer, da dette forårsaker både brukervennlighet og tilgjengelighetsproblemer. Fra et brukervennlighetsperspektiv kan det faktum at utløserelementet til den aktuelle fanen som vises ikke er umiddelbart synlig (som det er inne i den lukkede rullegardinmenyen) forårsake forvirring. Fra et tilgjengelighetssynspunkt er det foreløpig ingen fornuftig måte å kartlegge denne typen konstruksjon til et standard WAI ARIA-mønster, noe som betyr at det ikke lett kan gjøres forståelig for brukere av hjelpemidler.
Dette er noe plassholderinnhold på Hjem-fanens tilknyttede innhold. Hvis du klikker på en annen fane, endres synligheten til denne for den neste. Fanen JavaScript bytter klasser for å kontrollere innholdets synlighet og stil. Du kan bruke den med faner, piller og annen .nav
drevet navigasjon.
This is some placeholder content the Profile tab's associated content. Clicking another tab will toggle the visibility of this one for the next. The tab JavaScript swaps classes to control the content visibility and styling. You can use it with tabs, pills, and any other .nav
-powered navigation.
This is some placeholder content the Contact tab's associated content. Clicking another tab will toggle the visibility of this one for the next. The tab JavaScript swaps classes to control the content visibility and styling. You can use it with tabs, pills, and any other .nav
-powered navigation.
<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>
<li class="nav-item" role="presentation">
<button class="nav-link" id="contact-tab" data-bs-toggle="tab" data-bs-target="#contact" type="button" role="tab" aria-controls="contact" aria-selected="false">Contact</button>
</li>
</ul>
<div class="tab-content" id="myTabContent">
<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 class="tab-pane fade" id="contact" role="tabpanel" aria-labelledby="contact-tab">...</div>
</div>
For å hjelpe deg med å dekke dine behov, fungerer dette med <ul>
-basert markering, som vist ovenfor, eller med en hvilken som helst vilkårlig "rull din egen" markering. Vær oppmerksom på at hvis du bruker <nav>
, bør du ikke legge role="tablist"
direkte til den, da dette vil overstyre elementets opprinnelige rolle som navigasjonslandemerke. Bytt i stedet til et alternativt element (i eksemplet nedenfor, en enkel <div>
) og vikle <nav>
rundt det.
<nav>
<div class="nav nav-tabs" id="nav-tab" role="tablist">
<button class="nav-link active" id="nav-home-tab" data-bs-toggle="tab" data-bs-target="#nav-home" type="button" role="tab" aria-controls="nav-home" aria-selected="true">Home</button>
<button class="nav-link" id="nav-profile-tab" data-bs-toggle="tab" data-bs-target="#nav-profile" type="button" role="tab" aria-controls="nav-profile" aria-selected="false">Profile</button>
<button class="nav-link" id="nav-contact-tab" data-bs-toggle="tab" data-bs-target="#nav-contact" type="button" role="tab" aria-controls="nav-contact" aria-selected="false">Contact</button>
</div>
</nav>
<div class="tab-content" id="nav-tabContent">
<div class="tab-pane fade show active" id="nav-home" role="tabpanel" aria-labelledby="nav-home-tab">...</div>
<div class="tab-pane fade" id="nav-profile" role="tabpanel" aria-labelledby="nav-profile-tab">...</div>
<div class="tab-pane fade" id="nav-contact" role="tabpanel" aria-labelledby="nav-contact-tab">...</div>
</div>
Tabs-pluginen fungerer også med piller.
Dette er noe plassholderinnhold på Hjem-fanens tilknyttede innhold. Hvis du klikker på en annen fane, endres synligheten til denne for den neste. Fanen JavaScript bytter klasser for å kontrollere innholdets synlighet og stil. Du kan bruke den med faner, piller og annen .nav
drevet navigasjon.
This is some placeholder content the Profile tab's associated content. Clicking another tab will toggle the visibility of this one for the next. The tab JavaScript swaps classes to control the content visibility and styling. You can use it with tabs, pills, and any other .nav
-powered navigation.
This is some placeholder content the Contact tab's associated content. Clicking another tab will toggle the visibility of this one for the next. The tab JavaScript swaps classes to control the content visibility and styling. You can use it with tabs, pills, and any other .nav
-powered navigation.
<ul class="nav nav-pills mb-3" id="pills-tab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link active" id="pills-home-tab" data-bs-toggle="pill" data-bs-target="#pills-home" type="button" role="tab" aria-controls="pills-home" aria-selected="true">Home</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="pills-profile-tab" data-bs-toggle="pill" data-bs-target="#pills-profile" type="button" role="tab" aria-controls="pills-profile" aria-selected="false">Profile</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="pills-contact-tab" data-bs-toggle="pill" data-bs-target="#pills-contact" type="button" role="tab" aria-controls="pills-contact" aria-selected="false">Contact</button>
</li>
</ul>
<div class="tab-content" id="pills-tabContent">
<div class="tab-pane fade show active" id="pills-home" role="tabpanel" aria-labelledby="pills-home-tab">...</div>
<div class="tab-pane fade" id="pills-profile" role="tabpanel" aria-labelledby="pills-profile-tab">...</div>
<div class="tab-pane fade" id="pills-contact" role="tabpanel" aria-labelledby="pills-contact-tab">...</div>
</div>
Og med vertikale piller.
Dette er noe plassholderinnhold på Hjem-fanens tilknyttede innhold. Hvis du klikker på en annen fane, endres synligheten til denne for den neste. Fanen JavaScript bytter klasser for å kontrollere innholdets synlighet og stil. Du kan bruke den med faner, piller og annen .nav
drevet navigasjon.
This is some placeholder content the Profile tab's associated content. Clicking another tab will toggle the visibility of this one for the next. The tab JavaScript swaps classes to control the content visibility and styling. You can use it with tabs, pills, and any other .nav
-powered navigation.
This is some placeholder content the Messages tab's associated content. Clicking another tab will toggle the visibility of this one for the next. The tab JavaScript swaps classes to control the content visibility and styling. You can use it with tabs, pills, and any other .nav
-powered navigation.
This is some placeholder content the Settings tab's associated content. Clicking another tab will toggle the visibility of this one for the next. The tab JavaScript swaps classes to control the content visibility and styling. You can use it with tabs, pills, and any other .nav
-powered navigation.
<div class="d-flex align-items-start">
<div class="nav flex-column nav-pills me-3" id="v-pills-tab" role="tablist" aria-orientation="vertical">
<button class="nav-link active" id="v-pills-home-tab" data-bs-toggle="pill" data-bs-target="#v-pills-home" type="button" role="tab" aria-controls="v-pills-home" aria-selected="true">Home</button>
<button class="nav-link" id="v-pills-profile-tab" data-bs-toggle="pill" data-bs-target="#v-pills-profile" type="button" role="tab" aria-controls="v-pills-profile" aria-selected="false">Profile</button>
<button class="nav-link" id="v-pills-messages-tab" data-bs-toggle="pill" data-bs-target="#v-pills-messages" type="button" role="tab" aria-controls="v-pills-messages" aria-selected="false">Messages</button>
<button class="nav-link" id="v-pills-settings-tab" data-bs-toggle="pill" data-bs-target="#v-pills-settings" type="button" role="tab" aria-controls="v-pills-settings" aria-selected="false">Settings</button>
</div>
<div class="tab-content" id="v-pills-tabContent">
<div class="tab-pane fade show active" id="v-pills-home" role="tabpanel" aria-labelledby="v-pills-home-tab">...</div>
<div class="tab-pane fade" id="v-pills-profile" role="tabpanel" aria-labelledby="v-pills-profile-tab">...</div>
<div class="tab-pane fade" id="v-pills-messages" role="tabpanel" aria-labelledby="v-pills-messages-tab">...</div>
<div class="tab-pane fade" id="v-pills-settings" role="tabpanel" aria-labelledby="v-pills-settings-tab">...</div>
</div>
</div>
Bruk av dataattributter
Du kan aktivere en fane- eller pillenavigasjon uten å skrive noe JavaScript ved å spesifisere data-bs-toggle="tab"
eller data-bs-toggle="pill"
på et element. Bruk disse dataattributtene på .nav-tabs
eller .nav-pills
.
<!-- Nav tabs -->
<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>
<li class="nav-item" role="presentation">
<button class="nav-link" id="messages-tab" data-bs-toggle="tab" data-bs-target="#messages" type="button" role="tab" aria-controls="messages" aria-selected="false">Messages</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="settings-tab" data-bs-toggle="tab" data-bs-target="#settings" type="button" role="tab" aria-controls="settings" aria-selected="false">Settings</button>
</li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div class="tab-pane active" id="home" role="tabpanel" aria-labelledby="home-tab">...</div>
<div class="tab-pane" id="profile" role="tabpanel" aria-labelledby="profile-tab">...</div>
<div class="tab-pane" id="messages" role="tabpanel" aria-labelledby="messages-tab">...</div>
<div class="tab-pane" id="settings" role="tabpanel" aria-labelledby="settings-tab">...</div>
</div>
Via JavaScript
Aktiver tabbare faner via JavaScript (hver fane må aktiveres individuelt):
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()
})
})
Du kan aktivere individuelle faner på flere måter:
var triggerEl = document.querySelector('#myTab button[data-bs-target="#profile"]')
bootstrap.Tab.getInstance(triggerEl).show() // Select tab by name
var triggerFirstTabEl = document.querySelector('#myTab li:first-child button')
bootstrap.Tab.getInstance(triggerFirstTabEl).show() // Select first tab
Fade-effekt
For å få faner til å tone inn, legg .fade
til i hver .tab-pane
. Den første faneruten må også .show
gjøre det opprinnelige innholdet synlig.
<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 class="tab-pane fade" id="messages" role="tabpanel" aria-labelledby="messages-tab">...</div>
<div class="tab-pane fade" id="settings" role="tabpanel" aria-labelledby="settings-tab">...</div>
</div>
Metoder
Asynkrone metoder og overganger
Alle API-metoder er asynkrone og starter en overgang . De går tilbake til den som ringer så snart overgangen er startet, men før den avsluttes . I tillegg vil et metodekall på en overgangskomponent bli ignorert .
constructor
Aktiverer et faneelement og innholdsbeholder. Tab skal ha enten et data-bs-target
eller, hvis du bruker en lenke, et href
attributt, målrettet mot en containernode i DOM.
<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>
<li class="nav-item" role="presentation">
<button class="nav-link" id="messages-tab" data-bs-toggle="tab" data-bs-target="#messages" type="button" role="tab" aria-controls="messages" aria-selected="false">Messages</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="settings-tab" data-bs-toggle="tab" data-bs-target="#settings" type="button" role="tab" aria-controls="settings" aria-selected="false">Settings</button>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="home" role="tabpanel" aria-labelledby="home-tab">...</div>
<div class="tab-pane" id="profile" role="tabpanel" aria-labelledby="profile-tab">...</div>
<div class="tab-pane" id="messages" role="tabpanel" aria-labelledby="messages-tab">...</div>
<div class="tab-pane" id="settings" role="tabpanel" aria-labelledby="settings-tab">...</div>
</div>
<script>
var firstTabEl = document.querySelector('#myTab li:last-child button')
var firstTab = new bootstrap.Tab(firstTabEl)
firstTab.show()
</script>
show
Velger den gitte fanen og viser den tilhørende ruten. Enhver annen fane som tidligere ble valgt blir opphevet og den tilhørende ruten er skjult. Går tilbake til den som ringer før faneruten faktisk har blitt vist (dvs. før shown.bs.tab
hendelsen inntreffer).
var someTabTriggerEl = document.querySelector('#someTabTrigger')
var tab = new bootstrap.Tab(someTabTriggerEl)
tab.show()
dispose
Ødelegger et elements fane.
getInstance
Statisk metode som lar deg få tabulatorforekomsten knyttet til et DOM-element
var triggerEl = document.querySelector('#trigger')
var tab = bootstrap.Tab.getInstance(triggerEl) // Returns a Bootstrap tab instance
getOrCreateInstance
Statisk metode som lar deg få tabulatorforekomsten knyttet til et DOM-element, eller opprette en ny i tilfelle den ikke ble initialisert
var triggerEl = document.querySelector('#trigger')
var tab = bootstrap.Tab.getOrCreateInstance(triggerEl) // Returns a Bootstrap tab instance
Events
Når du viser en ny fane, utløses hendelsene i følgende rekkefølge:
hide.bs.tab
(på gjeldende aktive fane)show.bs.tab
(på fanen som skal vises)hidden.bs.tab
(på den forrige aktive fanen, den samme som forhide.bs.tab
arrangementet)shown.bs.tab
(på den nylig aktive fanen som nettopp er vist, den samme som forshow.bs.tab
arrangementet)
Hvis ingen fane allerede var aktiv, vil ikke hide.bs.tab
og hidden.bs.tab
-hendelsene bli utløst.
Hendelsestype | Beskrivelse |
---|---|
show.bs.tab |
Denne hendelsen utløses på fanevisning, men før den nye fanen har blitt vist. Bruk event.target og event.relatedTarget for å målrette henholdsvis den aktive fanen og den forrige aktive fanen (hvis tilgjengelig). |
shown.bs.tab |
Denne hendelsen utløses på fanevisning etter at en fane er vist. Bruk event.target og event.relatedTarget for å målrette henholdsvis den aktive fanen og den forrige aktive fanen (hvis tilgjengelig). |
hide.bs.tab |
Denne hendelsen utløses når en ny fane skal vises (og dermed skal den forrige aktive fanen skjules). Bruk event.target og event.relatedTarget for å målrette henholdsvis den gjeldende aktive fanen og den nye snart-aktive fanen. |
hidden.bs.tab |
Denne hendelsen utløses etter at en ny fane vises (og dermed er den forrige aktive fanen skjult). Bruk event.target og event.relatedTarget for å målrette henholdsvis den forrige aktive fanen og den nye aktive fanen. |
var tabEl = document.querySelector('button[data-bs-toggle="tab"]')
tabEl.addEventListener('shown.bs.tab', function (event) {
event.target // newly activated tab
event.relatedTarget // previous active tab
})