Navs
Dokumentacja i przykłady korzystania z dołączonych komponentów nawigacji Bootstrap.
Nawigacja dostępna w Bootstrap udostępnia ogólne oznaczenia i style, od .nav
klasy bazowej po stany aktywne i wyłączone. Zamień klasy modyfikatorów, aby przełączać się między poszczególnymi stylami.
Podstawowy .nav
komponent 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 .nav
nie zawiera żadnego .active
stanu. Poniższe przykłady zawierają klasę, głównie w celu zademonstrowania, że ta konkretna klasa nie uruchamia żadnych specjalnych stylów.
Klasy są używane przez cały czas, więc Twoje znaczniki mogą być bardzo elastyczne. Użyj <ul>
s jak powyżej lub rzuć własne, powiedzmy <nav>
element. Ponieważ .nav
używa display: flex
, łącza nawigacyjne zachowują się tak samo jak elementy nawigacyjne, ale bez dodatkowych znaczników.
Zmień styl .nav
komponentu s za pomocą modyfikatorów i narzędzi. Mieszaj i dopasowuj według potrzeb lub stwórz własną.
Zmień poziome wyrównanie swojej nawigacji za pomocą narzędzi Flexbox . Domyślnie navs 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
:
Wyrównany do prawej z .justify-content-end
:
Ułóż nawigację, zmieniając kierunek elementu elastycznego za pomocą .flex-column
narzędzia. Chcesz umieścić je na niektórych rzutniach, ale nie na innych? Użyj wersji responsywnych (np .flex-sm-column
. ).
Jak zawsze, nawigacja pionowa jest również możliwa bez <ul>
s.
Pobiera podstawową nawigację z góry i dodaje .nav-tabs
klasę, aby wygenerować interfejs z zakładkami. Używaj ich do tworzenia regionów z zakładkami za pomocą naszej wtyczki JavaScript tab .
Weź ten sam kod HTML, ale .nav-pills
zamiast tego użyj:
Wymuś .nav
rozszerzenie 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ść.
Korzystając z <nav>
nawigacji opartej, pamiętaj, aby uwzględnić .nav-item
kotwice.
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-fill
powyższego, każdy element nawigacyjny będzie miał taką samą szerokość.
Podobnie jak w .nav-fill
przykładzie z <nav>
nawigacją opartą na podstawie, pamiętaj, aby uwzględnić .nav-item
kotwice.
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.
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-tabs
klasą, nie powinny mieć atrybutów ani atrybutów . Są one odpowiednie tylko dla dynamicznych interfejsów z kartami, zgodnie z opisem w WAI ARIA Authoring Practices . Zobacz na przykład zachowanie JavaScript dla dynamicznych interfejsów z kartami w tej sekcji.role="tablist"
role="tab"
role="tabpanel"
Dodaj rozwijane menu z trochę dodatkowym kodem HTML i rozwijaną wtyczką JavaScript .
Użyj wtyczki JavaScript zakładki — dołącz ją pojedynczo lub za pośrednictwem skompilowanego bootstrap.js
pliku — aby rozszerzyć nasze zakładki nawigacyjne i pigułki, aby tworzyć panele z lokalnymi treściami z zakładkami, nawet za pomocą menu rozwijanych.
Jeśli budujesz nasz JavaScript ze źródeł, wymagautil.js
to .
Dynamiczne interfejsy z zakładkami, jak opisano w WAI ARIA Authoring Practices , 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).
Pamiętaj, że dynamiczne interfejsy z kartami nie powinny zawierać menu rozwijanych, ponieważ powoduje to problemy zarówno 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.
Surowy denim, o którym prawdopodobnie nie słyszałeś, dżinsowe szorty Austin. Nesciunt tofu stumptown aliqua, oczyszczanie mistrza syntezatorów w stylu retro. Wąsy cliche tempor, williamsburg carles wegańska helvetica. Reprehenderit rzeźnik retro kefija łapacz snów syntezator. Cosby sweter eu banh mi, qui irure terry richardson ex kałamarnica. Aliquip placeat salvia cillum iphone. Seitan aliquip quis kardigan amerykański odzież, rzeźnik 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.
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.
Wtyczka tabs działa również z tabletkami.
Consequat occaecat ullamco amet non eiusmod nostrud dolore irure incididunt est duis anim sunt officia. Fugiat velit proident aliquip nisi incididunt nostrud exercitation proident est nisi. Irure magna elit commodo anim ex veniam culpa eiusmod id nostrud siedzieć cupidatat w veniam ad. Eiusmod consequat eu adipisicing minim anim aliquip cupidatat culpaexcepteur quis. Occaecat sit eu ćwiczenia irure Lorem incididunt 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.
I z pionowymi pigułkami.
Cillum ad ut irure tempor velit nostrud occaecat ullamco aliqua anim Lorem sint. Veniam sint duis incididunt do esse magna mollitexcepteur laborum qui. Id id reprehenderit sit est eu aliqua occaecat quis et velitexcepteur laborum mollit dolore eiusmod. Ipsum dolor in occaecat commodo et voluptate minim reprehenderit mollit pariatur. Deserunt non laborum enim et cillum eu deseruntexcepteur ea incididunt 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.
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-tabs
lub .nav-pills
.
Włącz karty z zakładkami za pomocą JavaScript (każda karta musi być aktywowana osobno):
Poszczególne zakładki możesz aktywować na kilka sposobów:
Aby karty pojawiały się, dodaj .fade
do każdego .tab-pane
. Pierwszy panel z zakładkami musi również .show
uwidaczniać początkową zawartość.
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.
Aktywuje element tab i kontener treści. Karta powinna mieć węzeł kontenera data-target
lub docelowy w DOM.href
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.tab
wystąpieniem zdarzenia).
Niszczy zakładkę elementu.
Po wyświetleniu nowej karty zdarzenia są uruchamiane w następującej kolejności:
hide.bs.tab
(na aktualnie aktywnej zakładce)show.bs.tab
(w zakładce do pokazania)hidden.bs.tab
(na poprzedniej aktywnej zakładce, taka sama jak dlahide.bs.tab
wydarzenia)shown.bs.tab
(na nowo aktywnej właśnie wyświetlonej zakładce, takiej samej jak dlashow.bs.tab
wydarzenia)
Jeżeli żadna zakładka nie była już aktywna, to zdarzenia hide.bs.tab
i hidden.bs.tab
nie 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.target i 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.target i 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.target i event.relatedTarget do 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.target i event.relatedTarget do kierowania odpowiednio na poprzednią aktywną kartę i nową aktywną kartę. |