navigatiesysteem
Documentatie en voorbeelden voor Bootstrap's krachtige, responsieve navigatiekop, de navbar. Bevat ondersteuning voor branding, navigatie, inklapplug-in en meer.
Hoe het werkt
Dit is wat u moet weten voordat u aan de slag gaat met de navigatiebalk:
- Navbars vereisen een verpakking
.navbar
met.navbar-expand{-sm|-md|-lg|-xl}
voor responsieve inklap- en kleurenschemaklassen . - Navigatiebalken en hun inhoud zijn standaard vloeiend. Gebruik optionele containers om hun horizontale breedte te beperken.
- Gebruik onze spatiërings- en flex -hulpprogrammaklassen voor het regelen van spatiëring en uitlijning binnen navigatiebalken.
- Navbars zijn standaard responsief, maar u kunt ze eenvoudig aanpassen om dat te veranderen. Responsief gedrag is afhankelijk van onze Collapse JavaScript-plug-in.
- Navigatiebalken zijn standaard verborgen tijdens het afdrukken. Forceer ze om te worden afgedrukt door toe te voegen
.d-print
aan de.navbar
. Zie de weergavehulpprogrammaklasse . - Zorg voor toegankelijkheid door een
<nav>
element te gebruiken of, bij gebruik van een meer generiek element zoals een<div>
, eenrole="navigation"
aan elke navigatiebalk toe te voegen om deze expliciet te identificeren als een herkenningspunt voor gebruikers van ondersteunende technologieën.
prefers-reduced-motion
mediaquery. Zie het
gedeelte over beperkte beweging van onze toegankelijkheidsdocumentatie .
Ondersteunde inhoud
Navbars worden geleverd met ingebouwde ondersteuning voor een handvol subcomponenten. Kies indien nodig uit het volgende:
.navbar-brand
voor uw bedrijfs-, product- of projectnaam..navbar-nav
voor een volledige hoogte en lichtgewicht navigatie (inclusief ondersteuning voor dropdowns)..navbar-toggler
voor gebruik met onze inklapplug-in en ander navigatiewisselgedrag ..form-inline
voor alle formulierbesturingen en acties..navbar-text
voor het toevoegen van verticaal gecentreerde tekstreeksen..collapse.navbar-collapse
voor het groeperen en verbergen van de inhoud van de navigatiebalk door een bovenliggend breekpunt.
Hier is een voorbeeld van alle subcomponenten die zijn opgenomen in een responsieve navigatiebalk met lichtthema die automatisch inklapt op het lg
(grote) breekpunt.
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-expanded="false">
Dropdown
</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link disabled">Disabled</a>
</li>
</ul>
<form class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
</nav>
In dit voorbeeld worden de hulpprogrammaklassen kleur ( bg-light
) en spatiëring ( my-2
, my-lg-0
, mr-sm-0
, ) gebruikt.my-sm-0
Merk
Het .navbar-brand
kan op de meeste elementen worden toegepast, maar een anker werkt het beste, omdat voor sommige elementen hulpprogrammaklassen of aangepaste stijlen nodig zijn.
<!-- As a link -->
<nav class="navbar navbar-light bg-light">
<a class="navbar-brand" href="#">Navbar</a>
</nav>
<!-- As a heading -->
<nav class="navbar navbar-light bg-light">
<span class="navbar-brand mb-0 h1">Navbar</span>
</nav>
Het toevoegen van afbeeldingen aan de afbeelding .navbar-brand
vereist waarschijnlijk altijd aangepaste stijlen of hulpprogramma's om de juiste grootte te krijgen. Hier zijn enkele voorbeelden om te demonstreren.
<!-- Just an image -->
<nav class="navbar navbar-light bg-light">
<a class="navbar-brand" href="#">
<img src="/docs/4.6/assets/brand/bootstrap-solid.svg" width="30" height="30" alt="">
</a>
</nav>
<!-- Image and text -->
<nav class="navbar navbar-light bg-light">
<a class="navbar-brand" href="#">
<img src="/docs/4.6/assets/brand/bootstrap-solid.svg" width="30" height="30" class="d-inline-block align-top" alt="">
Bootstrap
</a>
</nav>
navigatie
Navbar-navigatielinks bouwen voort op onze .nav
opties met hun eigen modificatieklasse en vereisen het gebruik van schakelklassen voor een juiste responsieve styling. Navigatie in navigatiebalken zal ook groeien om zoveel mogelijk horizontale ruimte in te nemen om de inhoud van uw navigatiebalk veilig uitgelijnd te houden.
Actieve statussen - met .active
-om aan te geven dat de huidige pagina direct kan worden toegepast op .nav-link
s of hun directe bovenliggende .nav-item
s.
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pricing</a>
</li>
<li class="nav-item">
<a class="nav-link disabled">Disabled</a>
</li>
</ul>
</div>
</nav>
En omdat we klassen voor onze navigatie gebruiken, kunt u de op lijsten gebaseerde benadering volledig vermijden als u dat wilt.
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
<div class="navbar-nav">
<a class="nav-link active" href="#">Home <span class="sr-only">(current)</span></a>
<a class="nav-link" href="#">Features</a>
<a class="nav-link" href="#">Pricing</a>
<a class="nav-link disabled">Disabled</a>
</div>
</div>
</nav>
Je kunt ook dropdowns in je navigatiebalk gebruiken. Vervolgkeuzemenu's vereisen een terugloopelement voor positionering, dus zorg ervoor dat u aparte en geneste elementen gebruikt voor .nav-item
en .nav-link
zoals hieronder weergegeven.
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavDropdown">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pricing</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-expanded="false">
Dropdown link
</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>
</li>
</ul>
</div>
</nav>
Formulieren
Plaats verschillende formulierbesturingselementen en componenten in een navigatiebalk met .form-inline
.
<nav class="navbar navbar-light bg-light">
<form class="form-inline">
<input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</nav>
Onmiddellijke onderliggende elementen van .navbar
gebruik flex layout en zullen standaard justify-content: space-between
. Gebruik indien nodig extra flexhulpprogramma's om dit gedrag aan te passen.
<nav class="navbar navbar-light bg-light">
<a class="navbar-brand">Navbar</a>
<form class="form-inline">
<input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</nav>
Inputgroepen werken ook:
<nav class="navbar navbar-light bg-light">
<form class="form-inline">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text" id="basic-addon1">@</span>
</div>
<input type="text" class="form-control" placeholder="Username" aria-label="Username" aria-describedby="basic-addon1">
</div>
</form>
</nav>
Verschillende knoppen worden ook ondersteund als onderdeel van deze navigatiebalkformulieren. Dit is ook een goede herinnering dat verticale uitlijnhulpprogramma's kunnen worden gebruikt om elementen van verschillende grootte uit te lijnen.
<nav class="navbar navbar-light bg-light">
<form class="form-inline">
<button class="btn btn-outline-success" type="button">Main button</button>
<button class="btn btn-sm btn-outline-secondary" type="button">Smaller button</button>
</form>
</nav>
Tekst
Navigatiebalken kunnen stukjes tekst bevatten met behulp van .navbar-text
. Deze klasse past de verticale uitlijning en horizontale afstand voor tekstreeksen aan.
<nav class="navbar navbar-light bg-light">
<span class="navbar-text">
Navbar text with an inline element
</span>
</nav>
Mix en match met andere componenten en hulpprogramma's als dat nodig is.
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Navbar w/ text</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarText">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pricing</a>
</li>
</ul>
<span class="navbar-text">
Navbar text with an inline element
</span>
</div>
</nav>
Kleurenschema's
Het thema van de navigatiebalk is nog nooit zo eenvoudig geweest dankzij de combinatie van themaklassen en background-color
hulpprogramma's. Kies uit .navbar-light
voor gebruik met lichte achtergrondkleuren, of .navbar-dark
voor donkere achtergrondkleuren. Pas het vervolgens aan met .bg-*
hulpprogramma's.
<nav class="navbar navbar-dark bg-dark">
<!-- Navbar content -->
</nav>
<nav class="navbar navbar-dark bg-primary">
<!-- Navbar content -->
</nav>
<nav class="navbar navbar-light" style="background-color: #e3f2fd;">
<!-- Navbar content -->
</nav>
containers
Hoewel dit niet vereist is, kunt u een navigatiebalk in a .container
plaatsen om deze op een pagina te centreren. Of u kunt een container aan de binnenkant toevoegen .navbar
om alleen de inhoud van een vaste of statische navigatiebalk bovenaan te centreren .
<div class="container">
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Navbar</a>
</nav>
</div>
Wanneer de container zich binnen uw navigatiebalk bevindt, wordt de horizontale opvulling verwijderd op breekpunten lager dan de door u opgegeven .navbar-expand{-sm|-md|-lg|-xl}
klasse. Dit zorgt ervoor dat we de opvulling niet onnodig verdubbelen op lagere kijkvensters wanneer uw navigatiebalk is ingeklapt.
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container">
<a class="navbar-brand" href="#">Navbar</a>
</div>
</nav>
Plaatsing
Gebruik onze positiehulpprogramma 's om navigatiebalken in niet-statische posities te plaatsen. Kies uit vast aan de bovenkant, vast aan de onderkant of vastgeplakt aan de bovenkant (scrollt met de pagina totdat deze de bovenkant bereikt en blijft daar). Vaste navigatiebalken gebruiken position: fixed
, wat betekent dat ze uit de normale stroom van de DOM worden gehaald en mogelijk aangepaste CSS vereisen (bijvoorbeeld padding-top
op de <body>
) om overlapping met andere elementen te voorkomen.
Houd er ook rekening mee dat .sticky-top
gebruikt position: sticky
, dat niet volledig wordt ondersteund in elke browser .
<nav class="navbar navbar-light bg-light">
<a class="navbar-brand" href="#">Default</a>
</nav>
<nav class="navbar fixed-top navbar-light bg-light">
<a class="navbar-brand" href="#">Fixed top</a>
</nav>
<nav class="navbar fixed-bottom navbar-light bg-light">
<a class="navbar-brand" href="#">Fixed bottom</a>
</nav>
<nav class="navbar sticky-top navbar-light bg-light">
<a class="navbar-brand" href="#">Sticky top</a>
</nav>
Scrollen
Voeg toe .navbar-nav-scroll
aan een .navbar-collapse
(of ander subonderdeel van de navigatiebalk) om verticaal scrollen mogelijk te maken binnen de schakelbare inhoud van een samengevouwen navigatiebalk. Scrollen begint standaard op 75vh
(of 75% van de kijkvensterhoogte), maar u kunt dat overschrijven met inline of aangepaste stijlen. Bij grotere viewports wanneer de navigatiebalk is uitgevouwen, wordt de inhoud weergegeven zoals in een standaardnavbar.
Houd er rekening mee dat dit gedrag gepaard gaat met een potentieel nadeel van overflow
—wanneer instelling overflow-y: auto
(vereist om hier door de inhoud te scrollen), overflow-x
het equivalent is van auto
, waardoor een deel van de horizontale inhoud wordt bijgesneden.
Hier is een voorbeeld van een navigatiebalk die gebruikt .navbar-nav-scroll
met style="max-height: 100px;"
, met enkele extra margehulpprogramma's voor optimale spatiëring.
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Navbar scroll</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarScroll" aria-controls="navbarScroll" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarScroll">
<ul class="navbar-nav mr-auto my-2 my-lg-0 navbar-nav-scroll" style="max-height: 100px;">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-expanded="false">
Link
</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><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link disabled">Link</a>
</li>
</ul>
<form class="d-flex">
<input class="form-control mr-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>
</div>
</nav>
Responsief gedrag
Navbars kunnen .navbar-toggler
, .navbar-collapse
, en .navbar-expand{-sm|-md|-lg|-xl}
klassen gebruiken om te bepalen wanneer hun inhoud achter een knop inklapt. In combinatie met andere hulpprogramma's kunt u eenvoudig kiezen wanneer u bepaalde elementen wilt weergeven of verbergen.
Voor navigatiebalken die nooit inklappen, voegt u de .navbar-expand
klasse toe aan de navigatiebalk. Voeg geen .navbar-expand
klasse toe voor navigatiebalken die altijd samenvouwen.
Toggler
Navbar-schakelaars zijn standaard links uitgelijnd, maar als ze een broer of zus-element zoals een volgen .navbar-brand
, worden ze automatisch uiterst rechts uitgelijnd. Als u uw opmaak omdraait, wordt de plaatsing van de toggler omgekeerd. Hieronder staan voorbeelden van verschillende schakelstijlen.
Met geen .navbar-brand
getoond bij het kleinste breekpunt:
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo01" aria-controls="navbarTogglerDemo01" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarTogglerDemo01">
<a class="navbar-brand" href="#">Hidden brand</a>
<ul class="navbar-nav mr-auto mt-2 mt-lg-0">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></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>
<form class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
</nav>
Met links een merknaam en rechts een schakelaar:
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarTogglerDemo02">
<ul class="navbar-nav mr-auto mt-2 mt-lg-0">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></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>
<form class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="search" placeholder="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
</nav>
Met een schakelaar aan de linkerkant en merknaam aan de rechterkant:
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo03" aria-controls="navbarTogglerDemo03" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="#">Navbar</a>
<div class="collapse navbar-collapse" id="navbarTogglerDemo03">
<ul class="navbar-nav mr-auto mt-2 mt-lg-0">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></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>
<form class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
</nav>
Externe inhoud
Soms wil je de instortingsplug-in gebruiken om een containerelement te activeren voor inhoud die structureel buiten het .navbar
. Omdat onze plug-in werkt op de id
en data-target
matching, is dat eenvoudig gedaan!
<div class="fixed-top">
<div class="collapse" id="navbarToggleExternalContent">
<div class="bg-dark p-4">
<h5 class="text-white h4">Collapsed content</h5>
<span class="text-muted">Toggleable via the navbar brand.</span>
</div>
</div>
<nav class="navbar navbar-dark bg-dark">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggleExternalContent" aria-controls="navbarToggleExternalContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
</nav>
</div>
Wanneer u dit doet, raden we u aan extra JavaScript op te nemen om de focus programmatisch naar de container te verplaatsen wanneer deze wordt geopend. Anders zullen toetsenbordgebruikers en gebruikers van ondersteunende technologieën waarschijnlijk moeite hebben om de nieuw onthulde inhoud te vinden - vooral als de container die werd geopend vóór de schakelaar in de structuur van het document komt. We raden u ook aan ervoor te zorgen dat de toggler het aria-controls
attribuut heeft, wijzend naar id
de inhoudscontainer. In theorie stelt dit gebruikers van ondersteunende technologie in staat om rechtstreeks van de schakelaar naar de container te springen die het bestuurt, maar de ondersteuning hiervoor is momenteel nogal fragmentarisch.