Dokumentacja i przykłady korzystania z dołączonych komponentów nawigacji Bootstrap.

Nawigacja podstawowa

Nawigacja dostępna w Bootstrap udostępnia ogólne oznaczenia i style, od .navklasy bazowej po stany aktywne i wyłączone. Zamień klasy modyfikatorów, aby przełączać się między poszczególnymi stylami.

Podstawowy .navkomponent jest zbudowany z flexbox i zapewnia mocną podstawę do budowania wszystkich typów komponentów nawigacyjnych. Zawiera kilka nadpisań stylów (do pracy z listami), dopełnienie linków dla większych obszarów trafień i podstawową nieaktywną stylizację.

Składnik podstawowy .navnie zawiera żadnego .activestanu. Poniższe przykłady zawierają klasę, głównie w celu zademonstrowania, że ​​ta konkretna klasa nie uruchamia żadnych specjalnych stylów.
<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">Disabled</a>
  </li>
</ul>

Klasy są używane przez cały czas, więc Twoje znaczniki mogą być bardzo elastyczne. Użyj <ul>takiego jak powyżej, <ol>jeśli kolejność twoich przedmiotów jest ważna, lub rzuć własną z <nav>elementem. Ponieważ .navużywa display: flex, łącza nawigacyjne zachowują się tak samo jak elementy nawigacyjne, ale bez dodatkowych znaczników.

<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">Disabled</a>
</nav>

Dostępne style

Zmień styl .navkomponentu s za pomocą modyfikatorów i narzędzi. Mieszaj i dopasowuj według potrzeb lub stwórz własną.

Wyrównanie w poziomie

Zmień poziome wyrównanie swojej nawigacji za pomocą narzędzi Flexbox . Domyślnie nav są wyrównane do lewej, ale można je łatwo zmienić na wyrównane do środka lub do prawej.

Wyśrodkowany z .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">Disabled</a>
  </li>
</ul>

Wyrównany do prawej z .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">Disabled</a>
  </li>
</ul>

Pionowy

Układaj nawigację, zmieniając kierunek elementu elastycznego za pomocą .flex-columnnarzędzia. Chcesz umieścić je na niektórych rzutniach, ale nie na innych? Użyj wersji responsywnych (np .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">Disabled</a>
  </li>
</ul>

Jak zawsze, nawigacja pionowa jest również możliwa bez <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">Disabled</a>
</nav>

Karty

Pobiera podstawową nawigację z góry i dodaje .nav-tabsklasę, aby wygenerować interfejs z zakładkami. Używaj ich do tworzenia regionów z zakładkami za pomocą naszej wtyczki JavaScript tabulatora .

<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">Disabled</a>
  </li>
</ul>

Pigułki

Weź ten sam kod HTML, ale .nav-pillszamiast tego użyj:

<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">Disabled</a>
  </li>
</ul>

Wypełnij i uzasadnij

Wymuś .navrozszerzenie zawartości do pełnej dostępnej szerokości jednej z dwóch klas modyfikatorów. Aby proporcjonalnie wypełnić całą dostępną przestrzeń .nav-item, użyj .nav-fill. Zauważ, że cała przestrzeń pozioma jest zajęta, ale nie każdy element nawigacji ma taką samą szerokość.

<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="#">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>

Korzystając z <nav>nawigacji opartej, możesz bezpiecznie pominąć .nav-item, ponieważ .nav-linkjest to wymagane tylko do stylizacji <a>elementów.

<nav class="nav nav-pills nav-fill">
  <a class="nav-link active" 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>

W przypadku elementów o równej szerokości użyj .nav-justified. Cała przestrzeń pozioma będzie zajęta przez łącza nawigacyjne, ale w przeciwieństwie do .nav-fillpowyższego, każdy element nawigacyjny będzie miał taką samą szerokość.

<ul class="nav nav-pills nav-justified">
  <li class="nav-item">
    <a class="nav-link active" 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>

Podobnie jak w przypadku .nav-fillkorzystania z <nav>nawigacji opartej.

<nav class="nav nav-pills nav-justified">
  <a class="nav-link active" 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>

Praca z narzędziami elastycznymi

Jeśli potrzebujesz responsywnych odmian nawigacji, rozważ użycie serii narzędzi flexbox . Te narzędzia są bardziej szczegółowe, ale oferują większą personalizację w responsywnych punktach przerwania. W poniższym przykładzie nasza nav zostanie ułożona w najniższym punkcie przerwania, a następnie dostosuje się do układu poziomego, który wypełnia dostępną szerokość, zaczynając od małego punktu przerwania.

<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="#">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>

Jeśli chodzi o dostępność

Jeśli używasz navs do zapewnienia paska nawigacyjnego, pamiętaj, aby dodać role="navigation"do najbardziej logicznego kontenera nadrzędnego <ul>lub owinąć <nav>element wokół całej nawigacji. Nie dodawaj roli do <ul>samej siebie, ponieważ uniemożliwiłoby to ogłaszanie jej jako rzeczywistej listy przez technologie wspomagające.

Zwróć uwagę, że paski nawigacyjne, nawet jeśli wizualnie są stylizowane na karty z .nav-tabsklasą, nie powinny mieć atrybutów ani atrybutów . Są one odpowiednie tylko dla dynamicznych interfejsów z kartami, zgodnie z opisem we wzorcu kart ARIA Authoring Practices Guide . Zobacz na przykład zachowanie JavaScript dla dynamicznych interfejsów z kartami w tej sekcji.role="tablist"role="tab"role="tabpanel"

Korzystanie z menu rozwijanych

Dodaj rozwijane menu z odrobiną dodatkowego kodu HTML i rozwijaną wtyczką JavaScript .

Karty z listami rozwijanymi

<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-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">Disabled</a>
  </li>
</ul>

Pigułki z listami rozwijanymi

<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-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">Disabled</a>
  </li>
</ul>

zachowanie JavaScript

Użyj wtyczki JavaScript zakładki — dołącz ją pojedynczo lub za pośrednictwem skompilowanego bootstrap.jspliku — aby rozszerzyć nasze zakładki nawigacyjne i pigułki, aby utworzyć panele z lokalnymi treściami z zakładkami.

Jeśli budujesz nasz JavaScript ze źródeł, wymagautil.js to .

Dynamiczne interfejsy z zakładkami, jak opisano we wzorcu zakładek ARIA Authoring Practices Guide , wymagają role="tablist", role="tab", role="tabpanel"oraz dodatkowych aria-atrybutów w celu przekazania ich struktury, funkcjonalności i aktualnego stanu użytkownikom technologii wspomagających (takich jak czytniki ekranu). W ramach najlepszej praktyki zalecamy używanie <button>elementów na kartach, ponieważ są to elementy sterujące, które powodują dynamiczną zmianę, a nie linki prowadzące do nowej strony lub lokalizacji.

Pamiętaj, że wtyczka JavaScript na kartach nie obsługuje interfejsów z kartami, które zawierają menu rozwijane, ponieważ powodują one zarówno problemy z użytecznością, jak i dostępnością. Z punktu widzenia użyteczności fakt, że element wyzwalający aktualnie wyświetlanej karty nie jest od razu widoczny (ponieważ znajduje się w zamkniętym menu rozwijanym) może powodować zamieszanie. Z punktu widzenia dostępności nie ma obecnie sensownego sposobu odwzorowania tego rodzaju konstrukcji do standardowego wzorca WAI ARIA, co oznacza, że ​​nie może być łatwo zrozumiała dla użytkowników technologii wspomagających.

Zawartość zastępcza dla panelu kart. Ten odnosi się do zakładki Home. Zabiera cię mile wysoko, tak wysoko, bo ona ma ten jeden międzynarodowy uśmiech. W moim łóżku jest nieznajomy, łomotanie w mojej głowie. O nie. W innym życiu kazałbym ci zostać. Bo ja jestem zdolna do wszystkiego. Szykuję się do mojej koronnej bitwy. Służy do kradzieży alkoholu rodziców i wspinania się na dach. Ton, opalenizna i gotowość, podkręć, bo robi się ciężka. Jej miłość jest jak narkotyk. Chyba zapomniałam, że mam wybór.

Zawartość zastępcza dla panelu kart. Ten odnosi się do zakładki profilu. Masz najlepszą architekturę. Pieczątki w paszporcie, ona jest kosmopolityczna. Dobra, świeża, zacięta, mamy to na oku. Nigdy nie planowałem, że pewnego dnia cię stracę. Ona zjada twoje serce. Twój pocałunek jest kosmiczny, każdy ruch jest magiczny. Mam na myśli tych, mam na myśli, jakby ona była tą jedyną. Pozdrawiamy bliskich ruszamy w podróż. Po prostu zawładnij nocą jak 4 lipca! Ale wolałbyś się zmarnować.

Placeholder content for the tab panel. This one relates to the contact tab. Her love is like a drug. All my girls vintage Chanel baby. Got a motel and built a fort out of sheets. 'Cause she's the muse and the artist. (This is how we do) So you wanna play with magic. So just be sure before you give it all to me. I'm walking, I'm walking on air (tonight). Skip the talk, heard it all, time to walk the walk. Catch her if you can. Stinging like a bee I earned my stripes.

<ul class="nav nav-tabs" id="myTab" role="tablist">
  <li class="nav-item" role="presentation">
    <button class="nav-link active" id="home-tab" data-toggle="tab" data-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-toggle="tab" data-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-toggle="tab" data-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>

Aby dopasować się do twoich potrzeb, działa to ze <ul>znacznikami opartymi na -, jak pokazano powyżej, lub z dowolnymi znacznikami „wyrzucaj własne”. Pamiętaj, że jeśli używasz <nav>, nie należy dodawać role="tablist"do niego bezpośrednio, ponieważ zastąpiłoby to natywną rolę elementu jako punktu orientacyjnego nawigacji. Zamiast tego przełącz się na alternatywny element (w poniższym przykładzie prosty <div>) i owiń <nav>go wokół niego.

<nav>
  <div class="nav nav-tabs" id="nav-tab" role="tablist">
    <button class="nav-link active" id="nav-home-tab" data-toggle="tab" data-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-toggle="tab" data-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-toggle="tab" data-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>

Wtyczka tabs działa również z tabletkami.

Zawartość zastępcza dla panelu kart. Ten odnosi się do zakładki Home. Zabiera cię mile wysoko, tak wysoko, bo ona ma ten jeden międzynarodowy uśmiech. W moim łóżku jest nieznajomy, łomotanie w mojej głowie. O nie. W innym życiu kazałbym ci zostać. Bo ja jestem zdolna do wszystkiego. Szykuję się do mojej koronnej bitwy. Służy do kradzieży alkoholu rodziców i wspinania się na dach. Ton, opalenizna i gotowość, podkręć, bo robi się ciężka. Jej miłość jest jak narkotyk. Chyba zapomniałam, że mam wybór.

Placeholder content for the tab panel. This one relates to the profile tab. You got the finest architecture. Passport stamps, she's cosmopolitan. Fine, fresh, fierce, we got it on lock. Never planned that one day I'd be losing you. She eats your heart out. Your kiss is cosmic, every move is magic. I mean the ones, I mean like she's the one. Greetings loved ones let's take a journey. Just own the night like the 4th of July! But you'd rather get wasted.

Placeholder content for the tab panel. This one relates to the contact tab. Her love is like a drug. All my girls vintage Chanel baby. Got a motel and built a fort out of sheets. 'Cause she's the muse and the artist. (This is how we do) So you wanna play with magic. So just be sure before you give it all to me. I'm walking, I'm walking on air (tonight). Skip the talk, heard it all, time to walk the walk. Catch her if you can. Stinging like a bee I earned my stripes.

<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-toggle="pill" data-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-toggle="pill" data-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-toggle="pill" data-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>

I z pionowymi pigułkami.

Zawartość zastępcza dla panelu kart. Ten odnosi się do zakładki Home. Widziałem cię w centrum śpiewającego Bluesa. Obserwuj, jak okrążasz odpływ. Dlaczego nie pozwolisz mi wpaść? Ciężka jest głowa, która nosi koronę. Tak, sprawiamy, że anioły płaczą, spuszczając deszcz na ziemię z góry. Chcesz obejrzeć film w 3D. Czy kiedykolwiek czułeś, czułeś się tak cienki jak papier. To tak lub nie, może nie.

Placeholder content for the tab panel. This one relates to the profile tab. Takes you miles high, so high, 'cause she’s got that one international smile. There's a stranger in my bed, there's a pounding in my head. Oh, no. In another life I would make you stay. ‘Cause I, I’m capable of anything. Suiting up for my crowning battle. Used to steal your parents' liquor and climb to the roof. Tone, tan fit and ready, turn it up cause its gettin' heavy. Her love is like a drug. I guess that I forgot I had a choice.

Placeholder content for the tab panel. This one relates to the messages tab. You got the finest architecture. Passport stamps, she's cosmopolitan. Fine, fresh, fierce, we got it on lock. Never planned that one day I'd be losing you. She eats your heart out. Your kiss is cosmic, every move is magic. I mean the ones, I mean like she's the one. Greetings loved ones let's take a journey. Just own the night like the 4th of July! But you'd rather get wasted.

Placeholder content for the tab panel. This one relates to the settings tab. Her love is like a drug. All my girls vintage Chanel baby. Got a motel and built a fort out of sheets. 'Cause she's the muse and the artist. (This is how we do) So you wanna play with magic. So just be sure before you give it all to me. I'm walking, I'm walking on air (tonight). Skip the talk, heard it all, time to walk the walk. Catch her if you can. Stinging like a bee I earned my stripes.

<div class="row">
  <div class="col-3">
    <div class="nav flex-column nav-pills" id="v-pills-tab" role="tablist" aria-orientation="vertical">
      <button class="nav-link active" id="v-pills-home-tab" data-toggle="pill" data-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-toggle="pill" data-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-toggle="pill" data-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-toggle="pill" data-target="#v-pills-settings" type="button" role="tab" aria-controls="v-pills-settings" aria-selected="false">Settings</button>
    </div>
  </div>
  <div class="col-9">
    <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>
</div>

Korzystanie z atrybutów danych

Możesz aktywować nawigację po karcie lub pigułce bez pisania kodu JavaScript, po prostu określając data-toggle="tab"lub data-toggle="pill"na elemencie. Użyj tych atrybutów danych w .nav-tabslub .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-toggle="tab" data-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-toggle="tab" data-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-toggle="tab" data-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-toggle="tab" data-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>

Przez JavaScript

Włącz karty z zakładkami za pomocą JavaScript (każda karta musi być aktywowana osobno):

$('#myTab button').on('click', function (event) {
  event.preventDefault()
  $(this).tab('show')
})

Poszczególne zakładki możesz aktywować na kilka sposobów:

$('#myTab button[data-target="#profile"]').tab('show') // Select tab by name
$('#myTab li:first-child button').tab('show') // Select first tab
$('#myTab li:last-child button').tab('show') // Select last tab
$('#myTab li:nth-child(3) button').tab('show') // Select third tab

Efekt zanikania

Aby karty pojawiały się, dodaj .fadedo każdego .tab-pane. Pierwszy panel z zakładkami musi również .showuwidaczniać początkową zawartość.

<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>

Metody

Metody asynchroniczne i przejścia

Wszystkie metody API są asynchroniczne i rozpoczynają przejście . Wracają do rozmówcy zaraz po rozpoczęciu przejścia, ale przed jego zakończeniem . Ponadto wywołanie metody na składniku przechodzącym zostanie zignorowane .

Zobacz naszą dokumentację JavaScript, aby uzyskać więcej informacji .

$().tab

Aktywuje element tab i kontener treści. Karta powinna mieć albo data-target, jeśli używasz linku, hrefatrybut kierujący na węzeł kontenera w 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-toggle="tab" data-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-toggle="tab" data-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-toggle="tab" data-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-toggle="tab" data-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>
  $(function () {
    $('#myTab li:last-child button').tab('show')
  })
</script>

.tab('pokaż')

Wybiera daną kartę i pokazuje powiązany z nią panel. Każda inna karta, która została wcześniej wybrana, zostanie odznaczona, a skojarzone z nią okienko zostanie ukryte. Powraca do dzwoniącego przed faktycznym wyświetleniem okienka kart (tj. przed shown.bs.tabwystąpieniem zdarzenia).

$('#someTab').tab('show')

.tab('pozbyć się')

Niszczy zakładkę elementu.

Wydarzenia

Po wyświetleniu nowej karty zdarzenia są uruchamiane w następującej kolejności:

  1. hide.bs.tab(na aktualnie aktywnej zakładce)
  2. show.bs.tab(w zakładce do pokazania)
  3. hidden.bs.tab(na poprzedniej aktywnej zakładce, taka sama jak dla hide.bs.tabwydarzenia)
  4. shown.bs.tab(na nowo aktywnej właśnie wyświetlonej zakładce, takiej samej jak dla show.bs.tabwydarzenia)

Jeżeli żadna zakładka nie była już aktywna, to zdarzenia hide.bs.tabi hidden.bs.tabnie zostaną wywołane.

Typ wydarzenia Opis
show.bs.tab To zdarzenie jest uruchamiane na pokazie zakładek, ale przed pokazaniem nowej zakładki. Użyj event.targeti event.relatedTarget, aby wybrać odpowiednio aktywną kartę i poprzednią aktywną kartę (jeśli jest dostępna).
pokazano.bs.tab To zdarzenie jest uruchamiane na pokazie kart po wyświetleniu karty. Użyj event.targeti event.relatedTarget, aby wybrać odpowiednio aktywną kartę i poprzednią aktywną kartę (jeśli jest dostępna).
ukryj.bs.tab To zdarzenie jest wyzwalane, gdy ma być pokazana nowa zakładka (a tym samym ukryta poprzednia aktywna zakładka). Użyj event.targeti event.relatedTargetdo kierowania odpowiednio na bieżącą aktywną kartę i nową wkrótce aktywną kartę.
ukryta.bs.tab To zdarzenie jest uruchamiane po wyświetleniu nowej karty (a tym samym ukrycie poprzedniej aktywnej karty). Użyj event.targeti event.relatedTargetdo kierowania odpowiednio na poprzednią aktywną kartę i nową aktywną kartę.
$('button[data-toggle="tab"]').on('shown.bs.tab', function (event) {
  event.target // newly activated tab
  event.relatedTarget // previous active tab
})