Navis
Dokumentation und Beispiele für die Verwendung der enthaltenen Navigationskomponenten von Bootstrap.
Basisnavigation
Die in Bootstrap verfügbare Navigation teilt allgemeines Markup und Stile, von der Basisklasse .nav
bis zu den aktiven und deaktivierten Zuständen. Tauschen Sie Modifikatorklassen aus, um zwischen den einzelnen Stilen zu wechseln.
Die .nav
Basiskomponente wird mit Flexbox erstellt und bietet eine solide Grundlage für die Erstellung aller Arten von Navigationskomponenten. Es enthält einige Stilüberschreibungen (für die Arbeit mit Listen), etwas Link-Padding für größere Trefferbereiche und grundlegende deaktivierte Stile.
Die .nav
Basiskomponente enthält keinen .active
Zustand. Die folgenden Beispiele beinhalten die Klasse, hauptsächlich um zu demonstrieren, dass diese bestimmte Klasse kein spezielles Styling auslöst.
Klassen werden durchgehend verwendet, sodass Ihr Markup super flexibel sein kann. Verwenden Sie <ul>
s wie oben, <ol>
wenn die Reihenfolge Ihrer Artikel wichtig ist, oder rollen Sie Ihre eigenen mit einem <nav>
Element. Da die .nav
uses verwendet display: flex
werden, verhalten sich die Navigationslinks genauso wie Navigationselemente, jedoch ohne das zusätzliche Markup.
Verfügbare Stile
Ändern Sie den Stil der .nav
s-Komponente mit Modifikatoren und Dienstprogrammen. Mischen und kombinieren Sie nach Bedarf oder bauen Sie Ihre eigenen.
Horizontale Ausrichtung
Ändern Sie die horizontale Ausrichtung Ihres Navigationssystems mit den Flexbox-Dienstprogrammen . Standardmäßig sind Navs linksbündig ausgerichtet, aber Sie können sie einfach in zentriert oder rechtsbündig ändern.
Zentriert mit .justify-content-center
:
Rechtsbündig mit .justify-content-end
:
Vertikal
Stapeln Sie Ihre Navigation, indem Sie die Flex-Item-Richtung mit dem .flex-column
Dienstprogramm ändern. Müssen Sie sie in einigen Ansichtsfenstern stapeln, in anderen nicht? Verwenden Sie die responsiven Versionen (z . B. .flex-sm-column
).
Vertikale Navigation ist wie immer auch ohne <ul>
s möglich.
Registerkarten
Nimmt die grundlegende Navigation von oben und fügt die .nav-tabs
Klasse hinzu, um eine Oberfläche mit Registerkarten zu generieren. Verwenden Sie sie, um Tab-fähige Bereiche mit unserem Tab-JavaScript-Plugin zu erstellen .
Pillen
Nehmen Sie denselben HTML-Code, aber verwenden Sie .nav-pills
stattdessen:
Ausfüllen und begründen
Zwingen Sie den Inhalt Ihrer .nav
, die volle verfügbare Breite zu erweitern, eine von zwei Modifikatorklassen. .nav-item
Um den gesamten verfügbaren Platz proportional mit Ihren s zu füllen , verwenden Sie .nav-fill
. Beachten Sie, dass der gesamte horizontale Raum belegt ist, aber nicht alle Navigationselemente die gleiche Breite haben.
Wenn Sie eine <nav>
-basierte Navigation verwenden, stellen Sie sicher, dass Sie .nav-item
die Anker einbeziehen.
Verwenden Sie für gleich breite Elemente .nav-justified
. Der gesamte horizontale Platz wird von Navigationslinks eingenommen, aber im Gegensatz zu den .nav-fill
oben genannten Elementen hat jedes Navigationselement die gleiche Breite.
Achten Sie ähnlich wie im .nav-fill
Beispiel mit einer <nav>
-basierten Navigation darauf, .nav-item
die Anker einzuschließen.
Arbeiten mit Flex-Dienstprogrammen
Wenn Sie reaktionsschnelle Navigationsvarianten benötigen, sollten Sie eine Reihe von Flexbox-Dienstprogrammen verwenden . Diese Dienstprogramme sind zwar ausführlicher, bieten jedoch eine größere Anpassungsfähigkeit über reaktionsschnelle Haltepunkte hinweg. Im Beispiel unten wird unser Navi auf dem niedrigsten Haltepunkt gestapelt und passt sich dann an ein horizontales Layout an, das die verfügbare Breite ab dem kleinen Haltepunkt ausfüllt.
Apropos Barrierefreiheit
Wenn Sie Navs verwenden, um eine Navigationsleiste bereitzustellen, stellen Sie sicher, dass Sie ein role="navigation"
zum logischsten übergeordneten Container der hinzufügen oder ein Element um die gesamte Navigation <ul>
wickeln . <nav>
Fügen Sie die Rolle nicht zu <ul>
sich selbst hinzu, da dies verhindern würde, dass sie von Hilfstechnologien als tatsächliche Liste angekündigt wird.
Beachten Sie, dass Navigationsleisten, selbst wenn sie visuell als Registerkarten mit der .nav-tabs
Klasse gestaltet sind, keine , oder -Attribute erhalten role="tablist"
sollten . Diese sind nur für dynamische Schnittstellen mit Registerkarten geeignet, wie in den WAI ARIA Authoring Practices beschrieben . Ein Beispiel finden Sie in diesem Abschnitt unter JavaScript - Verhalten für dynamische Schnittstellen mit Registerkarten.role="tab"
role="tabpanel"
Verwenden von Dropdowns
Fügen Sie Dropdown-Menüs mit etwas zusätzlichem HTML und dem Dropdown-JavaScript-Plugin hinzu .
Registerkarten mit Dropdowns
Pillen mit Dropdowns
JavaScript-Verhalten
Verwenden Sie das Tab-JavaScript-Plug-in – fügen Sie es einzeln oder über die kompilierte bootstrap.js
Datei ein – um unsere Navigations-Tabs und -Pillen zu erweitern, um Tab-Fenster mit lokalen Inhalten zu erstellen, sogar über Dropdown-Menüs.
Wenn Sie unser JavaScript aus der Quelle erstellenutil.js
, ist .
Dynamische Benutzeroberflächen mit Registerkarten, wie in den WAI ARIA Authoring Practices beschrieben , erfordern role="tablist"
, role="tab"
, role="tabpanel"
, und zusätzliche aria-
Attribute, um ihre Struktur, Funktionalität und ihren aktuellen Status Benutzern von Hilfstechnologien (z. B. Screenreadern) zu vermitteln.
Beachten Sie, dass dynamische Benutzeroberflächen mit Registerkarten keine Dropdown-Menüs enthalten sollten, da dies sowohl Benutzerfreundlichkeits- als auch Zugänglichkeitsprobleme verursacht. Aus Sicht der Benutzerfreundlichkeit kann die Tatsache, dass das Auslöseelement der aktuell angezeigten Registerkarte nicht sofort sichtbar ist (da es sich innerhalb des geschlossenen Dropdown-Menüs befindet), Verwirrung stiften. Aus Sicht der Zugänglichkeit gibt es derzeit keine sinnvolle Möglichkeit, ein solches Konstrukt auf ein Standard-WAI-ARIA-Muster abzubilden, sodass es für Benutzer von assistiven Technologien nicht ohne weiteres verständlich gemacht werden kann.
Raw Denim Sie haben wahrscheinlich noch nie von den Jeansshorts Austin gehört. Nesciunt Tofu Stumptown Aliqua, Retro-Synth-Master-Reinigung. Schnurrbartklischee tempor, williamsburg carles vegan helvetica. Reprehenderit Metzger Retro Keffiyeh Dreamcatcher Synth. Cosby-Pullover eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis Strickjacke amerikanische Kleidung, Metzger 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.
Um Ihren Anforderungen gerecht zu werden, funktioniert dies mit <ul>
-basiertem Markup, wie oben gezeigt, oder mit jedem beliebigen „roll your own“-Markup. Beachten Sie, dass Sie bei Verwendung <nav>
von nicht direkt etwas hinzufügen sollten role="tablist"
, da dies die native Rolle des Elements als Orientierungspunkt für die Navigation außer Kraft setzen würde. Wechseln Sie stattdessen zu einem alternativen Element (im Beispiel unten ein einfaches <div>
) und umschließen <nav>
Sie es mit .
Das Tabs-Plugin funktioniert auch mit Pillen.
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 sit cupidatat in veniam ad. Eiusmod consequat eu adipisicing minim anim aliquip cupidatat culpa exceptioneur quis. Occaecat sit eu exercitation 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.
Und mit vertikalen Pillen.
Cillum ad ut irure tempor velit nostrud occaecat ullamco aliqua anim Lorem sint. Veniam sint duis incididunt do esse magna mollit excepteur laborum qui. Id id reprehenderit sit est eu aliqua occaecat quis et velit exceptioneur 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 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.
Verwenden von Datenattributen
Sie können eine Tab- oder Pill-Navigation aktivieren, ohne JavaScript zu schreiben, indem Sie einfach data-toggle="tab"
oder data-toggle="pill"
für ein Element angeben. Verwenden Sie diese Datenattribute auf .nav-tabs
oder .nav-pills
.
Über JavaScript
Aktivieren Sie Tabs über JavaScript (jede Registerkarte muss einzeln aktiviert werden):
Sie können einzelne Registerkarten auf verschiedene Arten aktivieren:
Fade-Effekt
Um Tabulatoren einzublenden, fügen Sie .fade
jedem hinzu .tab-pane
. Auch der erste Tab-Bereich muss .show
den initialen Inhalt sichtbar machen.
Methoden
Asynchrone Methoden und Übergänge
Alle API-Methoden sind asynchron und starten einen Übergang . Sie kehren zum Aufrufer zurück, sobald der Übergang gestartet wird, aber bevor er endet . Außerdem wird ein Methodenaufruf einer Übergangskomponente ignoriert .
Weitere Informationen finden Sie in unserer JavaScript-Dokumentation .
$().tab
Aktiviert ein Registerkartenelement und einen Inhaltscontainer. Tab sollte entweder ein data-target
oder ein haben href
, das auf einen Container-Knoten im DOM abzielt.
.tab('zeigen')
Wählt die angegebene Registerkarte aus und zeigt den zugehörigen Bereich an. Jede andere Registerkarte, die zuvor ausgewählt war, wird deaktiviert und der zugehörige Bereich wird ausgeblendet. Gibt an den Aufrufer zurück, bevor das Registerkartenfenster tatsächlich angezeigt wurde (dh bevor das shown.bs.tab
Ereignis eintritt).
.tab('entsorgen')
Zerstört die Registerkarte eines Elements.
Veranstaltungen
Beim Anzeigen eines neuen Tabs werden die Ereignisse in der folgenden Reihenfolge ausgelöst:
hide.bs.tab
(auf der aktuell aktiven Registerkarte)show.bs.tab
(auf dem anzuzeigenden Reiter)hidden.bs.tab
(auf der vorherigen aktiven Registerkarte dieselbe wie für dashide.bs.tab
Ereignis)shown.bs.tab
(auf dem neu aktivierten gerade gezeigten Tab, der gleiche wie für dasshow.bs.tab
Ereignis)
Wenn noch keine Registerkarte aktiv war, werden die Ereignisse hide.bs.tab
und hidden.bs.tab
nicht ausgelöst.
Ereignistyp | Beschreibung |
---|---|
show.bs.tab | Dieses Ereignis wird bei der Registerkartenanzeige ausgelöst, aber bevor die neue Registerkarte angezeigt wurde. Verwenden Sie event.target und event.relatedTarget , um auf die aktive Registerkarte bzw. die vorherige aktive Registerkarte (falls verfügbar) abzuzielen. |
gezeigt.bs.tab | Dieses Ereignis wird beim Anzeigen von Registerkarten ausgelöst, nachdem eine Registerkarte angezeigt wurde. Verwenden Sie event.target und event.relatedTarget , um auf die aktive Registerkarte bzw. die vorherige aktive Registerkarte (falls verfügbar) abzuzielen. |
verstecken.bs.tab | Dieses Ereignis wird ausgelöst, wenn ein neuer Tab angezeigt werden soll (und somit der vorherige aktive Tab ausgeblendet werden soll). Verwenden Sie event.target und event.relatedTarget , um auf die derzeit aktive Registerkarte bzw. die neue, bald aktive Registerkarte abzuzielen. |
versteckt.bs.tab | Dieses Ereignis wird ausgelöst, nachdem eine neue Registerkarte angezeigt wird (und somit die vorherige aktive Registerkarte ausgeblendet wird). Verwenden Sie event.target und event.relatedTarget , um auf die vorherige aktive Registerkarte bzw. die neue aktive Registerkarte zu zielen. |