Navbar
Dokumentacija i primjeri za Bootstrap moćno, prilagodljivo navigacijsko zaglavlje, navigacijsku traku. Uključuje podršku za brendiranje, navigaciju i još mnogo toga, uključujući podršku za naš dodatak za kolaps.
Kako radi
Evo šta trebate znati prije nego što počnete s navigacijskom trakom:
- Navbarovi zahtijevaju premotavanje
.navbar
sa.navbar-expand{-sm|-md|-lg|-xl|-xxl}
za brzo sažimanje i klase sheme boja . - Trake za navigaciju i njihov sadržaj su prema zadanim postavkama tečni. Promijenite kontejner da ograničite njihovu horizontalnu širinu na različite načine.
- Koristite naše klase uslužnih programa za razmak i fleksibilnost za kontrolu razmaka i poravnanja unutar navigacijskih traka.
- Trake za navigaciju su prema zadanim postavkama prilagodljive, ali ih možete lako modificirati kako biste to promijenili. Responzivno ponašanje ovisi o našem dodatku Collapse JavaScript.
- Osigurajte pristupačnost korištenjem
<nav>
elementa ili, ako koristite generičniji element kao što je<div>
, dodajte arole="navigation"
na svaku navigacijsku traku kako biste je eksplicitno identificirali kao orijentirnu regiju za korisnike pomoćnih tehnologija. - Označite trenutnu stavku koristeći
aria-current="page"
za trenutnu stranicu iliaria-current="true"
za trenutnu stavku u setu. - Novo u v5.2.0: Navbarovi mogu biti tematski sa CSS varijablama koje su obuhvaćene
.navbar
osnovnom klasom..navbar-light
je zastarjela i.navbar-dark
prepisana je kako bi zamenila CSS varijable umjesto dodavanja dodatnih stilova.
prefers-reduced-motion
medijskom upitu. Pogledajte odjeljak o
smanjenom pokretu u našoj dokumentaciji o pristupačnosti .
Podržani sadržaj
Navbari dolaze sa ugrađenom podrškom za nekoliko podkomponenti. Po potrebi odaberite od sljedećeg:
.navbar-brand
za naziv vaše kompanije, proizvoda ili projekta..navbar-nav
za navigaciju pune visine i laganu navigaciju (uključujući podršku za padajuće menije)..navbar-toggler
za korištenje s našim dodatkom za kolaps i drugim načinima preklapanja navigacije .- Pomoćni programi za savijanje i razmake za sve kontrole i radnje obrasca.
.navbar-text
za dodavanje vertikalno centriranih nizova teksta..collapse.navbar-collapse
za grupisanje i skrivanje sadržaja navigacijske trake prema roditeljskoj tački prekida.- Dodajte opciju
.navbar-scroll
za postavljanjemax-height
i pomicanje proširenog sadržaja navigacijske trake .
Evo primjera svih podkomponenti uključenih u brzu navigacijsku traku sa svjetlosnom tematikom koja se automatski ruši na lg
(velikoj) tački prekida.
<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 razmak ( me-auto
, mb-2
, mb-lg-0
, me-2
) uslužne klase.
Brand
Može .navbar-brand
se primijeniti na većinu elemenata, ali sidro najbolje funkcionira, jer 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
Tekst u okviru možete zamijeniti .navbar-brand
sa <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 uslužne programe za dodavanje slike i teksta u isto vrijeme. Obratite pažnju na dodavanje .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
Navigacijske veze Navbar-a nadovezuju se na naše .nav
opcije sa svojom vlastitom klasom modifikatora i zahtijevaju korištenje preklopnih klasa za pravilan odzivni stil. Navigacija u navigacijskim trakama će također rasti kako bi zauzela što je moguće više horizontalnog 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 na aktivni .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 pošto koristimo klase za naše navigacije, možete u potpunosti izbjeći pristup baziran na listi 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 menije na navigacijskoj traci. Padajući meniji zahtijevaju element omota za pozicioniranje, stoga obavezno koristite zasebne i ugniježđene elemente za .nav-item
i .nav-link
kao što je prikazano ispod.
<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>
Forms
Postavite različite kontrole obrasca 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 raspored i podrazumevano će biti justify-content: space-between
. Koristite dodatne fleksibilne uslužne programe po potrebi da prilagodite ovo ponašanje.
<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>
I ulazne grupe rade. Ako je vaša navigacijska traka cijeli obrazac, ili uglavnom obrazac, možete koristiti <form>
element kao kontejner 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>
Različiti tasteri su takođe podržani kao deo ovih obrazaca za navigaciju. Ovo je također odličan podsjetnik da se alati za vertikalno 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
Navbari mogu sadržavati dijelove teksta uz pomoć .navbar-text
. Ova klasa prilagođava vertikalno poravnanje i horizontalni 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>
Pomiješajte i uskladite s drugim komponentama i uslužnim programima po potrebi.
<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>
Šeme boja
.navbar-light
zastarjela je. CSS varijable se primjenjuju na
.navbar
, prema zadanim postavkama na "svijetli" izgled i mogu se nadjačati sa
.navbar-dark
.
Navbar teme su lakše nego ikad zahvaljujući Bootstrapovoj kombinaciji Sass i CSS varijabli. Zadana postavka 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-*
usluž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, možete umotati navigacijsku traku u a .container
da biste je centrirali na stranici – ali imajte na umu da je unutrašnji kontejner i dalje potreban. Ili možete dodati kontejner unutar .navbar
samo da centrirate sadržaj 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>
Koristite bilo koji od responzivnih kontejnera da promijenite širinu sadržaja u vašoj 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 uslužne programe za postavljanje navigacijskih traka na nestatične pozicije. Odaberite između fiksno na vrhu, fiksirano na dno, zalijepljeno na vrh (pomiče se sa stranicom dok ne dođe do vrha, a zatim ostaje tamo) ili zalijepljeno na dno (pomiče se sa stranicom dok ne dođe do dna, 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 sa 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
u .navbar-nav
(ili drugu podkomponentu navigacijske trake) da omogućite vertikalno pomicanje unutar promjenjivog sadržaja skupljene navigacijske trake. Prema zadanim postavkama, pomicanje počinje na 75vh
(ili 75% visine prozora za prikaz), ali to možete nadjačati lokalnim CSS prilagođenim svojstvom --bs-navbar-height
ili prilagođenim stilovima. U većim okvirima za prikaz kada se navigacijska traka proširi, sadržaj će se pojaviti kao u zadanoj navigacijskoj traci.
Imajte na umu da ovo ponašanje dolazi s potencijalnim nedostatkom — overflow
kada je postavljanje overflow-y: auto
(potrebno za pomicanje sadržaja ovdje) overflow-x
ekvivalentno auto
, što će izrezati neki horizontalni sadržaj.
Evo primjera navigacijske trake koja koristi .navbar-nav-scroll
sa style="--bs-scroll-height: 100px;"
, s nekim dodatnim uslužnim programima za margine za optimalan 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>
Responzivno ponašanje
Navbari mogu koristiti .navbar-toggler
, .navbar-collapse
, i .navbar-expand{-sm|-md|-lg|-xl|-xxl}
klase da odrede kada se njihov sadržaj skupi iza dugmeta. U kombinaciji s drugim uslužnim programima, lako možete 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 nijednu .navbar-expand
klasu.
Toggler
Prekidači navigacijske trake su prema zadanim postavkama poravnati lijevo, ali ako prate srodni element kao što je .navbar-brand
, automatski će biti poravnati krajnje desno. Obrnutim označavanjem će se obrnuti položaj prekidača. Ispod su primjeri različitih stilova prebacivanja.
Bez .navbar-brand
prikazanog na najmanjoj tački prekida:
<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>
Sa imenom brenda prikazanim na lijevoj strani i prekidačem na desnoj strani:
<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 prekidačem na lijevoj strani i imenom marke na desnoj strani:
<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>
Eksterni sadržaj
Ponekad želite da koristite dodatak za kolaps da pokrenete element kontejnera za sadržaj koji se strukturno nalazi izvan .navbar
. Budući da naš dodatak radi na id
i data-bs-target
podudaranju, to je lako 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 da uključite dodatni JavaScript kako biste programski premjestili fokus na spremnik kada se otvori. U suprotnom, korisnici tastature i korisnici pomoćnih tehnologija će vjerovatno imati poteškoća u pronalaženju novootkrivenog sadržaja – posebno ako se otvoreni kontejner nalazi ispred prekidača u strukturi dokumenta. Također preporučujemo da provjerite da li prekidač ima aria-controls
atribut koji pokazuje na id
kontejner sadržaja. U teoriji, ovo omogućava korisnicima pomoćne tehnologije da skoče direktno sa prekidača na kontejner koji kontroliše – ali podrška za to je trenutno prilično neujednačena.
Offcanvas
Transformirajte svoju navigacijsku traku koja se širi i sažima u ladicu van platna pomoću komponente van platna . Proširujemo i zadane stilove van platna i koristimo naše .navbar-expand-*
klase za kreiranje dinamičke i fleksibilne bočne trake za navigaciju.
U primjeru ispod, da biste kreirali navigacijsku traku van platna koja je uvijek skupljena na svim tačkama prekida, u .navbar-expand-*
potpunosti 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 kreirali navigacionu traku van platna koja se širi u normalnu navigacionu traku na određenoj tački prekida kao što je lg
, koristite .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 sadržaju van platna kako biste izbjegli da tekst postane nečitak. 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 pravilno oblikovanje 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
Dodato u v5.2.0Kao dio Bootstrap-ovog evoluirajućeg pristupa CSS varijabli, navigacijske trake sada koriste lokalne CSS varijable uključene .navbar
za poboljšanu prilagodbu u realnom vremenu. Vrijednosti za CSS varijable se postavljaju putem Sass-a, tako da je i Sass prilagođavanje i dalje podržano.
--#{$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 su takođe 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 preko CSS varijabli može se vidjeti na .navbar-dark
klasi gdje poništavamo određene vrijednosti bez dodavanja duplikata 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
Odzivne klase proširenja/sažimanja navigacijske trake (npr. .navbar-expand-lg
) se kombinuju sa $breakpoints
mapom i generišu 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;
}
}
}
}
}
}