Navigacijska traka
Dokumentacija i primjeri za Bootstrapovo moćno, osjetljivo navigacijsko zaglavlje, navigacijsku traku. Uključuje podršku za brendiranje, navigaciju i više, uključujući podršku za naš dodatak za sažimanje.
Kako radi
Evo što trebate znati prije nego počnete koristiti navigacijsku traku:
- Navigacijske trake zahtijevaju omatanje
.navbar
za.navbar-expand{-sm|-md|-lg|-xl|-xxl}
odgovarajuće sažimanje i klase sheme boja . - Navigacijske trake i njihov sadržaj su fluidni prema zadanim postavkama. Promijenite spremnik kako biste na različite načine ograničili njihovu horizontalnu širinu.
- Upotrijebite naše pomoćne klase razmaka i savijanja za kontrolu razmaka i poravnanja unutar navigacijskih traka.
- Navigacijske trake reagiraju prema zadanim postavkama, ali ih možete jednostavno modificirati da biste to promijenili. Responzivno ponašanje ovisi o našem dodatku Collapse JavaScript.
- Osigurajte pristupačnost upotrebom
<nav>
elementa ili, ako koristite općenitiji element kao što je<div>
, dodajterole="navigation"
svakoj navigacijskoj traci kako biste je eksplicitno identificirali kao područje orijentira za korisnike pomoćnih tehnologija. - Označite trenutnu stavku pomoću
aria-current="page"
za trenutnu stranicu iliaria-current="true"
za trenutnu stavku u skupu. - Novo u v5.2.0: Navigacijske trake mogu biti tematizirane CSS varijablama koje su ograničene na
.navbar
osnovnu klasu..navbar-light
je zastario i.navbar-dark
ponovno je napisan kako bi nadjačao CSS varijable umjesto dodavanja dodatnih stilova.
prefers-reduced-motion
medijskom upitu. Pogledajte odjeljak
smanjenog kretanja u našoj dokumentaciji o pristupačnosti .
Podržani sadržaj
Navigacijske trake dolaze s ugrađenom podrškom za pregršt podkomponenti. Po potrebi odaberite nešto od sljedećeg:
.navbar-brand
za naziv vaše tvrtke, proizvoda ili projekta..navbar-nav
za laganu navigaciju pune visine (uključujući podršku za padajuće izbornike)..navbar-toggler
za korištenje s našim dodatkom za sažimanje i drugim načinima mijenjanja navigacije .- Pomoćni programi za savijanje i razmake za sve kontrole i radnje obrasca.
.navbar-text
za dodavanje okomito centriranih nizova teksta..collapse.navbar-collapse
za grupiranje i skrivanje sadržaja na navigacijskoj traci prema roditeljskoj prijelomnoj točki.- Dodajte opciju
.navbar-scroll
za postavljanjemax-height
i pomicanje proširenog sadržaja navigacijske trake .
Evo primjera svih podkomponenti uključenih u responzivnu svjetlosnu navigacijsku traku koja se automatski skuplja na lg
(velikoj) prijelomnoj točki.
<nav class="navbar navbar-expand-lg bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-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 me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</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-bs-toggle="dropdown" 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><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">Disabled</a>
</li>
</ul>
<form class="d-flex" role="search">
<input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>
</div>
</div>
</nav>
Ovaj primjer koristi pozadinu ( bg-light
) i klase razmaka ( me-auto
, mb-2
, mb-lg-0
, ).me-2
Marka
Može se .navbar-brand
primijeniti na većinu elemenata, ali sidro najbolje funkcionira, budući da neki elementi mogu zahtijevati uslužne klase ili prilagođene stilove.
Tekst
Dodajte svoj tekst unutar elementa s .navbar-brand
klasom.
<!-- As a link -->
<nav class="navbar bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">Navbar</a>
</div>
</nav>
<!-- As a heading -->
<nav class="navbar bg-light">
<div class="container-fluid">
<span class="navbar-brand mb-0 h1">Navbar</span>
</div>
</nav>
Slika
Možete zamijeniti tekst unutar .navbar-brand
s <img>
.
<nav class="navbar bg-light">
<div class="container">
<a class="navbar-brand" href="#">
<img src="/docs/5.2/assets/brand/bootstrap-logo.svg" alt="Bootstrap" width="30" height="24">
</a>
</div>
</nav>
Slika i tekst
Također možete koristiti neke dodatne alate za dodavanje slike i teksta u isto vrijeme. Obratite pažnju na dodatak .d-inline-block
i .align-text-top
na <img>
.
<nav class="navbar bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">
<img src="/docs/5.2/assets/brand/bootstrap-logo.svg" alt="Logo" width="30" height="24" class="d-inline-block align-text-top">
Bootstrap
</a>
</div>
</nav>
Nav
Veze na navigacijskoj traci nadograđuju se na naše .nav
mogućnosti s vlastitom klasom modifikatora i zahtijevaju upotrebu klasa preklopnika za ispravan responzivni stil. Navigacija u navigacijskim trakama također će se povećati kako bi zauzela što više vodoravnog prostora kako bi sadržaj vaše navigacijske trake bio sigurno poravnat.
Dodajte .active
klasu .nav-link
da označite trenutnu stranicu.
Imajte na umu da biste također trebali dodati aria-current
atribut aktivnom.nav-link
.
<nav class="navbar navbar-expand-lg bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-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">
<a class="nav-link active" aria-current="page" href="#">Home</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>
</div>
</nav>
A budući da koristimo klase za naše navigacije, možete u potpunosti izbjeći pristup temeljen na popisima ako želite.
<nav class="navbar navbar-expand-lg bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-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" aria-current="page" href="#">Home</a>
<a class="nav-link" href="#">Features</a>
<a class="nav-link" href="#">Pricing</a>
<a class="nav-link disabled">Disabled</a>
</div>
</div>
</div>
</nav>
Također možete koristiti padajuće izbornike u navigacijskoj traci. Padajući izbornici zahtijevaju omotni element za pozicioniranje, pa svakako koristite zasebne i ugniježđene elemente za .nav-item
i .nav-link
kao što je prikazano u nastavku.
<nav class="navbar navbar-expand-lg bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-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">
<a class="nav-link active" aria-current="page" href="#">Home</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-bs-toggle="dropdown" aria-expanded="false">
Dropdown 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><a class="dropdown-item" href="#">Something else here</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
Obrasci
Postavite različite kontrole obrazaca i komponente unutar navigacijske trake:
<nav class="navbar bg-light">
<div class="container-fluid">
<form class="d-flex" role="search">
<input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>
</div>
</nav>
Neposredni podređeni elementi .navbar
koriste flex layout i bit će postavljeni na justify-content: space-between
. Po potrebi upotrijebite dodatne flex pomoćne programe za prilagodbu ovog ponašanja.
<nav class="navbar bg-light">
<div class="container-fluid">
<a class="navbar-brand">Navbar</a>
<form class="d-flex" role="search">
<input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>
</div>
</nav>
Ulazne grupe također rade. Ako je vaša navigacijska traka cijeli obrazac ili uglavnom obrazac, možete koristiti <form>
element kao spremnik i spremiti nešto HTML-a.
<nav class="navbar bg-light">
<form class="container-fluid">
<div class="input-group">
<span class="input-group-text" id="basic-addon1">@</span>
<input type="text" class="form-control" placeholder="Username" aria-label="Username" aria-describedby="basic-addon1">
</div>
</form>
</nav>
Razni gumbi također su podržani kao dio ovih navigacijskih obrazaca. Ovo je također odličan podsjetnik da se pomoćni programi za okomito poravnanje mogu koristiti za poravnavanje elemenata različitih veličina.
<nav class="navbar bg-light">
<form class="container-fluid justify-content-start">
<button class="btn btn-outline-success me-2" type="button">Main button</button>
<button class="btn btn-sm btn-outline-secondary" type="button">Smaller button</button>
</form>
</nav>
Tekst
Navigacijske trake mogu sadržavati dijelove teksta uz pomoć .navbar-text
. Ova klasa podešava okomito poravnanje i vodoravni razmak za nizove teksta.
<nav class="navbar bg-light">
<div class="container-fluid">
<span class="navbar-text">
Navbar text with an inline element
</span>
</div>
</nav>
Po potrebi pomiješajte i uskladite s ostalim komponentama i alatima.
<nav class="navbar navbar-expand-lg bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">Navbar w/ text</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-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 me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</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>
</div>
</nav>
Sheme boja
.navbar-light
zastarjela je. CSS varijable primjenjuju se na
.navbar
, prema zadanim postavkama na "svijetli" izgled i mogu se nadjačati s
.navbar-dark
.
Navbar teme su lakše nego ikad zahvaljujući Bootstrapovoj kombinaciji Sass i CSS varijabli. Zadana je naša "svijetla navigacijska traka" za korištenje sa svijetlim bojama pozadine, ali možete se prijaviti i .navbar-dark
za tamne boje pozadine. Zatim prilagodite .bg-*
pomoćnim programima.
<nav class="navbar navbar-dark bg-dark">
<!-- Navbar content -->
</nav>
<nav class="navbar navbar-dark bg-primary">
<!-- Navbar content -->
</nav>
<nav class="navbar" style="background-color: #e3f2fd;">
<!-- Navbar content -->
</nav>
Kontejneri
Iako to nije potrebno, navigacijsku traku možete omotati u .container
da biste je centrirali na stranici – ali imajte na umu da je unutarnji spremnik i dalje potreban. Ili možete dodati spremnik unutar .navbar
samo središta sadržaja fiksne ili statične gornje navigacijske trake .
<div class="container">
<nav class="navbar navbar-expand-lg bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">Navbar</a>
</div>
</nav>
</div>
Upotrijebite bilo koji od responzivnih spremnika da biste promijenili širinu prikaza sadržaja na navigacijskoj traci.
<nav class="navbar navbar-expand-lg bg-light">
<div class="container-md">
<a class="navbar-brand" href="#">Navbar</a>
</div>
</nav>
Plasman
Koristite naše pomoćne programe za postavljanje navigacijskih traka u nestatične položaje. Odaberite fiksno za vrh, fiksirano za dno, zalijepljeno za vrh (pomiče se sa stranicom dok ne dođe do vrha, zatim ostaje tamo) ili zalijepljeno za dno (pomiče se sa stranicom dok ne dosegne dno, a zatim ostaje tamo).
Fiksne navigacijske trake koriste position: fixed
, što znači da su izvučene iz normalnog toka DOM-a i mogu zahtijevati prilagođeni CSS (npr. padding-top
na <body>
) kako bi se spriječilo preklapanje s drugim elementima.
<nav class="navbar bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">Default</a>
</div>
</nav>
<nav class="navbar fixed-top bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">Fixed top</a>
</div>
</nav>
<nav class="navbar fixed-bottom bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">Fixed bottom</a>
</div>
</nav>
<nav class="navbar sticky-top bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">Sticky top</a>
</div>
</nav>
<nav class="navbar sticky-bottom bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">Sticky bottom</a>
</div>
</nav>
Pomicanje
Dodajte .navbar-nav-scroll
( .navbar-nav
ili drugoj podkomponenti navigacijske trake) kako biste omogućili okomito pomicanje unutar sadržaja koji se može mijenjati na sažetoj navigacijskoj traci. Prema zadanim postavkama, pomicanje počinje na 75vh
(ili 75% visine okvira za prikaz), ali to možete nadjačati pomoću lokalnog CSS prilagođenog svojstva --bs-navbar-height
ili prilagođenih stilova. Na većim okvirima za prikaz kada je navigacijska traka proširena, sadržaj će se pojaviti kao na zadanoj navigacijskoj traci.
Imajte na umu da ovo ponašanje dolazi s mogućim nedostatkom overflow
—kada je postavka overflow-y: auto
(potrebna za pomicanje sadržaja ovdje), overflow-x
ekvivalentna auto
, što će obrezati neki vodoravni sadržaj.
Evo primjera navigacijske trake koja koristi .navbar-nav-scroll
s style="--bs-scroll-height: 100px;"
, s nekim dodatnim pomoćnim programima za margine za optimalni razmak.
<nav class="navbar navbar-expand-lg bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">Navbar scroll</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-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 me-auto my-2 my-lg-0 navbar-nav-scroll" style="--bs-scroll-height: 100px;">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</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-bs-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" role="search">
<input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>
</div>
</div>
</nav>
Responzivna ponašanja
Navigacijske trake mogu koristiti .navbar-toggler
, .navbar-collapse
, i .navbar-expand{-sm|-md|-lg|-xl|-xxl}
klase za određivanje kada se njihov sadržaj sažima iza gumba. U kombinaciji s drugim uslužnim programima, možete jednostavno odabrati kada želite prikazati ili sakriti određene elemente.
Za navigacijske trake koje se nikada ne skupljaju, dodajte .navbar-expand
klasu na navigacijsku traku. Za navigacijske trake koje se uvijek skupljaju, nemojte dodavati nikakvu .navbar-expand
klasu.
Prekidač
Prekidači na navigacijskoj traci su prema zadanim postavkama poravnati lijevo, ali ako slijede srodni element kao što je .navbar-brand
, automatski će se poravnati krajnje desno. Obrnutim označavanjem promijenit ćete položaj preklopnika. Ispod su primjeri različitih stilova prebacivanja.
Bez .navbar-brand
prikaza na najmanjoj prijelomnoj točki:
<nav class="navbar navbar-expand-lg bg-light">
<div class="container-fluid">
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-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 me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</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="d-flex" role="search">
<input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>
</div>
</div>
</nav>
S nazivom marke prikazanim s lijeve strane i prekidačem s desne strane:
<nav class="navbar navbar-expand-lg bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-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 me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</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="d-flex" role="search">
<input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>
</div>
</div>
</nav>
S preklopnikom s lijeve strane i imenom robne marke s desne strane:
<nav class="navbar navbar-expand-lg bg-light">
<div class="container-fluid">
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-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 me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</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="d-flex" role="search">
<input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>
</div>
</div>
</nav>
Vanjski sadržaj
Ponekad želite upotrijebiti dodatak za sažimanje da pokrenete element spremnika za sadržaj koji se strukturno nalazi izvan .navbar
. Budući da naš dodatak radi na id
i data-bs-target
podudaranju, to je jednostavno učiniti!
<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">
<div class="container-fluid">
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarToggleExternalContent" aria-controls="navbarToggleExternalContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
</div>
</nav>
Kada to učinite, preporučujemo uključivanje dodatnog JavaScripta za programsko premještanje fokusa na spremnik kada se otvori. Inače će korisnici tipkovnice i korisnici pomoćnih tehnologija vjerojatno imati poteškoća u pronalaženju novootkrivenog sadržaja - osobito ako spremnik koji je otvoren dolazi prije preklopnika u strukturi dokumenta. Također preporučujemo da provjerite ima li preklopnik aria-controls
atribut koji pokazuje na id
spremnik sadržaja. U teoriji, ovo omogućuje korisnicima pomoćne tehnologije da skoče izravno s preklopnika na spremnik kojim upravlja – ali podrška za to trenutno je prilično neujednačena.
Offcanvas
Pretvorite svoju navigacijsku traku koja se širi i sažima u offcanvas ladicu s offcanvas komponentom . Proširujemo i offcanvas zadane stilove i koristimo naše .navbar-expand-*
klase za stvaranje dinamične i fleksibilne bočne trake za navigaciju.
U donjem primjeru, za stvaranje offcanvas navigacijske trake koja je uvijek sažeta preko svih prijelomnih točaka, .navbar-expand-*
potpuno izostavite klasu.
<nav class="navbar bg-light fixed-top">
<div class="container-fluid">
<a class="navbar-brand" href="#">Offcanvas navbar</a>
<button class="navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasNavbar" aria-controls="offcanvasNavbar">
<span class="navbar-toggler-icon"></span>
</button>
<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasNavbar" aria-labelledby="offcanvasNavbarLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasNavbarLabel">Offcanvas</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<ul class="navbar-nav justify-content-end flex-grow-1 pe-3">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</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-bs-toggle="dropdown" 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>
<hr class="dropdown-divider">
</li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>
</li>
</ul>
<form class="d-flex" role="search">
<input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>
</div>
</div>
</div>
</nav>
Da biste stvorili navigacijsku traku izvan platna koja se proširuje u normalnu navigacijsku traku na određenoj prijelomnoj točki kao što je lg
, upotrijebite .navbar-expand-lg
.
<nav class="navbar navbar-expand-lg bg-light fixed-top">
<a class="navbar-brand" href="#">Offcanvas navbar</a>
<button class="navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarOffcanvasLg" aria-controls="navbarOffcanvasLg">
<span class="navbar-toggler-icon"></span>
</button>
<div class="offcanvas offcanvas-end" tabindex="-1" id="navbarOffcanvasLg" aria-labelledby="navbarOffcanvasLgLabel">
...
</div>
</nav>
Kada koristite offcanvas u tamnoj navigacijskoj traci, imajte na umu da ćete možda morati imati tamnu pozadinu na offcanvas sadržaju kako biste izbjegli da tekst postane nečitljiv. U donjem primjeru dodajemo .navbar-dark
i .bg-dark
na .navbar
, .text-bg-dark
na .offcanvas
, .dropdown-menu-dark
na .dropdown-menu
i .btn-close-white
na .btn-close
za pravilan stil s tamnim offcanvasom.
<nav class="navbar navbar-dark bg-dark fixed-top">
<div class="container-fluid">
<a class="navbar-brand" href="#">Offcanvas dark navbar</a>
<button class="navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasDarkNavbar" aria-controls="offcanvasDarkNavbar">
<span class="navbar-toggler-icon"></span>
</button>
<div class="offcanvas offcanvas-end text-bg-dark" tabindex="-1" id="offcanvasDarkNavbar" aria-labelledby="offcanvasDarkNavbarLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasDarkNavbarLabel">Dark offcanvas</h5>
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<ul class="navbar-nav justify-content-end flex-grow-1 pe-3">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</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-bs-toggle="dropdown" aria-expanded="false">
Dropdown
</a>
<ul class="dropdown-menu dropdown-menu-dark">
<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>
</ul>
<form class="d-flex" role="search">
<input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-success" type="submit">Search</button>
</form>
</div>
</div>
</div>
</nav>
CSS
Varijable
Dodano u v5.2.0Kao dio Bootstrapovog pristupa CSS varijablama koji se razvija, navigacijske trake sada koriste lokalne CSS varijable .navbar
za poboljšanu prilagodbu u stvarnom vremenu. Vrijednosti za CSS varijable postavljaju se putem Sass-a, tako da je i dalje podržana prilagodba Sass-a.
--#{$prefix}navbar-padding-x: #{if($navbar-padding-x == null, 0, $navbar-padding-x)};
--#{$prefix}navbar-padding-y: #{$navbar-padding-y};
--#{$prefix}navbar-color: #{$navbar-light-color};
--#{$prefix}navbar-hover-color: #{$navbar-light-hover-color};
--#{$prefix}navbar-disabled-color: #{$navbar-light-disabled-color};
--#{$prefix}navbar-active-color: #{$navbar-light-active-color};
--#{$prefix}navbar-brand-padding-y: #{$navbar-brand-padding-y};
--#{$prefix}navbar-brand-margin-end: #{$navbar-brand-margin-end};
--#{$prefix}navbar-brand-font-size: #{$navbar-brand-font-size};
--#{$prefix}navbar-brand-color: #{$navbar-light-brand-color};
--#{$prefix}navbar-brand-hover-color: #{$navbar-light-brand-hover-color};
--#{$prefix}navbar-nav-link-padding-x: #{$navbar-nav-link-padding-x};
--#{$prefix}navbar-toggler-padding-y: #{$navbar-toggler-padding-y};
--#{$prefix}navbar-toggler-padding-x: #{$navbar-toggler-padding-x};
--#{$prefix}navbar-toggler-font-size: #{$navbar-toggler-font-size};
--#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-light-toggler-icon-bg)};
--#{$prefix}navbar-toggler-border-color: #{$navbar-light-toggler-border-color};
--#{$prefix}navbar-toggler-border-radius: #{$navbar-toggler-border-radius};
--#{$prefix}navbar-toggler-focus-width: #{$navbar-toggler-focus-width};
--#{$prefix}navbar-toggler-transition: #{$navbar-toggler-transition};
Neke dodatne CSS varijable također su prisutne na .navbar-nav
:
--#{$prefix}nav-link-padding-x: 0;
--#{$prefix}nav-link-padding-y: #{$nav-link-padding-y};
@include rfs($nav-link-font-size, --#{$prefix}nav-link-font-size);
--#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};
--#{$prefix}nav-link-color: var(--#{$prefix}navbar-color);
--#{$prefix}nav-link-hover-color: var(--#{$prefix}navbar-hover-color);
--#{$prefix}nav-link-disabled-color: var(--#{$prefix}navbar-disabled-color);
Prilagodba putem CSS varijabli može se vidjeti na .navbar-dark
klasi gdje nadjačavamo određene vrijednosti bez dodavanja dvostrukih CSS selektora.
--#{$prefix}navbar-color: #{$navbar-dark-color};
--#{$prefix}navbar-hover-color: #{$navbar-dark-hover-color};
--#{$prefix}navbar-disabled-color: #{$navbar-dark-disabled-color};
--#{$prefix}navbar-active-color: #{$navbar-dark-active-color};
--#{$prefix}navbar-brand-color: #{$navbar-dark-brand-color};
--#{$prefix}navbar-brand-hover-color: #{$navbar-dark-brand-hover-color};
--#{$prefix}navbar-toggler-border-color: #{$navbar-dark-toggler-border-color};
--#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-dark-toggler-icon-bg)};
Sass varijable
Varijable za sve navigacijske trake:
$navbar-padding-y: $spacer * .5;
$navbar-padding-x: null;
$navbar-nav-link-padding-x: .5rem;
$navbar-brand-font-size: $font-size-lg;
// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link
$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2;
$navbar-brand-height: $navbar-brand-font-size * $line-height-base;
$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5;
$navbar-brand-margin-end: 1rem;
$navbar-toggler-padding-y: .25rem;
$navbar-toggler-padding-x: .75rem;
$navbar-toggler-font-size: $font-size-lg;
$navbar-toggler-border-radius: $btn-border-radius;
$navbar-toggler-focus-width: $btn-focus-width;
$navbar-toggler-transition: box-shadow .15s ease-in-out;
$navbar-light-color: rgba($black, .55);
$navbar-light-hover-color: rgba($black, .7);
$navbar-light-active-color: rgba($black, .9);
$navbar-light-disabled-color: rgba($black, .3);
$navbar-light-toggler-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>");
$navbar-light-toggler-border-color: rgba($black, .1);
$navbar-light-brand-color: $navbar-light-active-color;
$navbar-light-brand-hover-color: $navbar-light-active-color;
Varijable za tamnu navigacijsku traku :
$navbar-dark-color: rgba($white, .55);
$navbar-dark-hover-color: rgba($white, .75);
$navbar-dark-active-color: $white;
$navbar-dark-disabled-color: rgba($white, .25);
$navbar-dark-toggler-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>");
$navbar-dark-toggler-border-color: rgba($white, .1);
$navbar-dark-brand-color: $navbar-dark-active-color;
$navbar-dark-brand-hover-color: $navbar-dark-active-color;
Sass petlja
Reaktivne klase proširenja/sažimanja navigacijske trake (npr. .navbar-expand-lg
) kombiniraju se s $breakpoints
kartom i generiraju kroz petlju u scss/_navbar.scss
.
// Generate series of `.navbar-expand-*` responsive classes for configuring
// where your navbar collapses.
.navbar-expand {
@each $breakpoint in map-keys($grid-breakpoints) {
$next: breakpoint-next($breakpoint, $grid-breakpoints);
$infix: breakpoint-infix($next, $grid-breakpoints);
// stylelint-disable-next-line scss/selector-no-union-class-name
&#{$infix} {
@include media-breakpoint-up($next) {
flex-wrap: nowrap;
justify-content: flex-start;
.navbar-nav {
flex-direction: row;
.dropdown-menu {
position: absolute;
}
.nav-link {
padding-right: var(--#{$prefix}navbar-nav-link-padding-x);
padding-left: var(--#{$prefix}navbar-nav-link-padding-x);
}
}
.navbar-nav-scroll {
overflow: visible;
}
.navbar-collapse {
display: flex !important; // stylelint-disable-line declaration-no-important
flex-basis: auto;
}
.navbar-toggler {
display: none;
}
.offcanvas {
// stylelint-disable declaration-no-important
position: static;
z-index: auto;
flex-grow: 1;
width: auto !important;
height: auto !important;
visibility: visible !important;
background-color: transparent !important;
border: 0 !important;
transform: none !important;
@include box-shadow(none);
@include transition(none);
// stylelint-enable declaration-no-important
.offcanvas-header {
display: none;
}
.offcanvas-body {
display: flex;
flex-grow: 0;
padding: 0;
overflow-y: visible;
}
}
}
}
}
}