Saltar al contingut principal Saltar a la navegació de documents
in English

Barra de navegació

Documentació i exemples per a la capçalera de navegació potent i sensible de Bootstrap, la barra de navegació. Inclou suport per a la marca, la navegació i molt més, inclòs el suport per al nostre connector de col·lapse.

Com funciona

Això és el que necessiteu saber abans de començar amb la barra de navegació:

  • Les barres de navegació requereixen un embolcall .navbaramb classes d'esquemes de colors.navbar-expand{-sm|-md|-lg|-xl|-xxl} i col·lapse sensibles .
  • Les barres de navegació i el seu contingut són fluids per defecte. Canvieu el contenidor per limitar-ne l'amplada horitzontal de diferents maneres.
  • Utilitzeu les nostres classes d'utilitat d' espaiat i flexió per controlar l'espaiat i l'alineació dins de les barres de navegació.
  • Les barres de navegació responen per defecte, però podeu modificar-les fàcilment per canviar-ho. El comportament responsiu depèn del nostre connector Collapse JavaScript.
  • Assegureu-vos l'accessibilitat mitjançant l'ús d'un <nav>element o, si feu servir un element més genèric, com ara un <div>, afegiu una role="navigation"a cada barra de navegació per identificar-la de manera explícita com a regió de referència per als usuaris de tecnologies d'assistència.
  • Indiqueu l'element actual utilitzant aria-current="page"per a la pàgina actual o aria-current="true"per a l'element actual d'un conjunt.
L'efecte d'animació d'aquest component depèn de la prefers-reduced-motionconsulta de mitjans. Consulteu la secció de moviment reduït de la nostra documentació d'accessibilitat .

Contingut compatible

Les barres de navegació inclouen suport integrat per a un grapat de subcomponents. Trieu entre els següents segons sigui necessari:

  • .navbar-brandper al nom de la vostra empresa, producte o projecte.
  • .navbar-navper a una navegació lleugera i d'alçada completa (incloent suport per a menús desplegables).
  • .navbar-togglerper utilitzar-lo amb el nostre connector de col·lapse i altres comportaments de commutació de navegació .
  • Utilitats flexibles i d'espaiat per a qualsevol control i acció de formulari.
  • .navbar-textper afegir cadenes de text centrades verticalment.
  • .collapse.navbar-collapseper agrupar i ocultar el contingut de la barra de navegació per un punt d'interrupció principal.
  • Afegiu un opcional .navbar-scrollper configurar un contingut de la barra de navegació ampliadamax-height i desplaçar-vos .

Aquí hi ha un exemple de tots els subcomponents inclosos en una barra de navegació responsiva de temàtica lleugera que es col·lapsa automàticament al punt d' lginterrupció (gran).

<nav class="navbar navbar-expand-lg navbar-light 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="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
            Dropdown
          </a>
          <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
            <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">
        <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>

Aquest exemple utilitza classes d'utilitat de fons ( bg-light) i espaiat ( my-2, my-lg-0, me-sm-0, ).my-sm-0

Marca

Es .navbar-brandpot aplicar a la majoria d'elements, però un àncora funciona millor, ja que alguns elements poden requerir classes d'utilitat o estils personalitzats.

Text

Afegiu el vostre text dins d'un element amb la .navbar-brandclasse.

<!-- As a link -->
<nav class="navbar navbar-light bg-light">
  <div class="container-fluid">
    <a class="navbar-brand" href="#">Navbar</a>
  </div>
</nav>

<!-- As a heading -->
<nav class="navbar navbar-light bg-light">
  <div class="container-fluid">
    <span class="navbar-brand mb-0 h1">Navbar</span>
  </div>
</nav>

Imatge

Podeu substituir el text dins de la .navbar-brandper un <img>.

<nav class="navbar navbar-light bg-light">
  <div class="container">
    <a class="navbar-brand" href="#">
      <img src="/docs/5.1/assets/brand/bootstrap-logo.svg" alt="" width="30" height="24">
    </a>
  </div>
</nav>

Imatge i text

També podeu utilitzar algunes utilitats addicionals per afegir una imatge i un text alhora. Tingueu en compte l'addició de .d-inline-blocki .align-text-topal <img>.

<nav class="navbar navbar-light bg-light">
  <div class="container-fluid">
    <a class="navbar-brand" href="#">
      <img src="/docs/5.1/assets/brand/bootstrap-logo.svg" alt="" width="30" height="24" class="d-inline-block align-text-top">
      Bootstrap
    </a>
  </div>
</nav>

Els enllaços de navegació de la barra de navegació es basen en les nostres .navopcions amb la seva pròpia classe modificadora i requereixen l'ús de classes de commutació per a un estil responsiu adequat. La navegació a les barres de navegació també creixerà per ocupar el màxim d'espai horitzontal possible per mantenir el contingut de la barra de navegació alineat de manera segura.

Afegiu la .activeclasse .nav-linkper indicar la pàgina actual.

Tingueu en compte que també hauríeu d'afegir l' aria-currentatribut a l'actiu .nav-link.

<nav class="navbar navbar-expand-lg navbar-light 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>

I com que utilitzem classes per als nostres navegadors, podeu evitar completament l'enfocament basat en llistes si voleu.

<nav class="navbar navbar-expand-lg navbar-light 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>

També podeu utilitzar menús desplegables a la vostra barra de navegació. Els menús desplegables requereixen un element d'embolcall per al posicionament, així que assegureu-vos d'utilitzar elements separats i imbricats .nav-itemcom .nav-linkes mostra a continuació.

<nav class="navbar navbar-expand-lg navbar-light 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="#" id="navbarDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
            Dropdown link
          </a>
          <ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
            <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>

Formes

Col·loqueu diversos controls de formulari i components dins d'una barra de navegació:

<nav class="navbar navbar-light bg-light">
  <div class="container-fluid">
    <form class="d-flex">
      <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>

Elements secundaris immediats d' .navbarús de disseny flexible i predeterminat justify-content: space-between. Utilitzeu utilitats flexibles addicionals segons sigui necessari per ajustar aquest comportament.

<nav class="navbar navbar-light bg-light">
  <div class="container-fluid">
    <a class="navbar-brand">Navbar</a>
    <form class="d-flex">
      <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>

Els grups d'entrada també funcionen. Si la vostra barra de navegació és un formulari sencer, o principalment un formulari, podeu utilitzar l' <form>element com a contenidor i desar una mica d'HTML.

<nav class="navbar navbar-light 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>

També s'admeten diversos botons com a part d'aquests formularis de la barra de navegació. Això també és un gran recordatori que les utilitats d'alineació vertical es poden utilitzar per alinear elements de diferents mides.

<nav class="navbar navbar-light 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>

Text

Les barres de navegació poden contenir fragments de text amb l'ajuda de .navbar-text. Aquesta classe ajusta l'alineació vertical i l'espaiat horitzontal de les cadenes de text.

<nav class="navbar navbar-light bg-light">
  <div class="container-fluid">
    <span class="navbar-text">
      Navbar text with an inline element
    </span>
  </div>
</nav>

Combina i combina amb altres components i utilitats segons sigui necessari.

<nav class="navbar navbar-expand-lg navbar-light 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>

Esquemes de colors

Tematitzar la barra de navegació mai ha estat tan fàcil gràcies a la combinació de classes de tematització i background-colorutilitats. Trieu entre .navbar-lightper utilitzar-lo amb colors de fons clars o .navbar-darkper a colors de fons foscos. A continuació, personalitzeu-los amb .bg-*utilitats.

<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>

Contenidors

Tot i que no és obligatori, podeu embolicar una barra de navegació .containerper centrar-la en una pàgina, tot i que tingueu en compte que encara cal un contenidor interior. O podeu afegir un contenidor a l'interior .navbarper centrar només el contingut d'una barra de navegació superior fixa o estàtica .

<div class="container">
  <nav class="navbar navbar-expand-lg navbar-light bg-light">
    <div class="container-fluid">
      <a class="navbar-brand" href="#">Navbar</a>
    </div>
  </nav>
</div>

Utilitzeu qualsevol dels contenidors sensibles per canviar l'ample que es presenta el contingut de la vostra barra de navegació.

<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <div class="container-md">
    <a class="navbar-brand" href="#">Navbar</a>
  </div>
</nav>

Col·locació

Utilitzeu les nostres utilitats de posició per col·locar barres de navegació en posicions no estàtiques. Trieu entre fixa a la part superior, fixa a la part inferior o enganxada a la part superior (es desplaça amb la pàgina fins que arriba a la part superior i després es queda allà). Les barres de navegació fixes utilitzen position: fixed, és a dir, s'extreuen del flux normal del DOM i poden requerir CSS personalitzats (per exemple, padding-topa <body>) per evitar la superposició amb altres elements.

Tingueu en compte també que .sticky-toputilitza position: sticky, que no és totalment compatible amb tots els navegadors .

<nav class="navbar navbar-light bg-light">
  <div class="container-fluid">
    <a class="navbar-brand" href="#">Default</a>
  </div>
</nav>
<nav class="navbar fixed-top navbar-light bg-light">
  <div class="container-fluid">
    <a class="navbar-brand" href="#">Fixed top</a>
  </div>
</nav>
<nav class="navbar fixed-bottom navbar-light bg-light">
  <div class="container-fluid">
    <a class="navbar-brand" href="#">Fixed bottom</a>
  </div>
</nav>
<nav class="navbar sticky-top navbar-light bg-light">
  <div class="container-fluid">
    <a class="navbar-brand" href="#">Sticky top</a>
  </div>
</nav>

Desplaçament

Afegiu -lo .navbar-nav-scrolla un .navbar-nav(o a un altre subcomponent de la barra de navegació) per habilitar el desplaçament vertical dins dels continguts alternables d'una barra de navegació replegada. De manera predeterminada, el desplaçament s'inicia a 75vh(o al 75% de l'alçada de la finestra), però podeu substituir-ho amb la propietat personalitzada CSS local --bs-navbar-heighto els estils personalitzats. A les finestres més grans quan la barra de navegació s'amplia, el contingut apareixerà tal com ho fa en una barra de navegació predeterminada.

Tingueu en compte que aquest comportament comporta un inconvenient potencial de overflow—quan la configuració overflow-y: auto(obligatòria per desplaçar-vos aquí) overflow-xés l'equivalent a auto, que retallarà part del contingut horitzontal.

Aquí hi ha un exemple de barra de navegació .navbar-nav-scrollamb style="--bs-scroll-height: 100px;", amb algunes utilitats de marge addicionals per a un espai òptim.

<nav class="navbar navbar-expand-lg navbar-light 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="#" id="navbarScrollingDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
            Link
          </a>
          <ul class="dropdown-menu" aria-labelledby="navbarScrollingDropdown">
            <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 me-2" type="search" placeholder="Search" aria-label="Search">
        <button class="btn btn-outline-success" type="submit">Search</button>
      </form>
    </div>
  </div>
</nav>

Conductes sensibles

Les barres de navegació poden utilitzar .navbar-toggler, .navbar-collapse, i .navbar-expand{-sm|-md|-lg|-xl|-xxl}classes per determinar quan el seu contingut es col·lapsa darrere d'un botó. En combinació amb altres utilitats, podeu triar fàcilment quan mostrar o amagar elements concrets.

Per a les barres de navegació que no es redueixen mai, afegiu la .navbar-expandclasse a la barra de navegació. Per a les barres de navegació que sempre col·lapsen, no afegiu cap .navbar-expandclasse.

Alternador

Els commutadors de la barra de navegació estan alineats a l'esquerra per defecte, però si segueixen un element germà com un .navbar-brand, s'alinearan automàticament a l'extrem dret. Si inverteix el teu marcatge, invertirà la ubicació del commutador. A continuació es mostren exemples de diferents estils de commutació.

Sense .navbar-brandmostrar-se al punt d'interrupció més petit:

<nav class="navbar navbar-expand-lg navbar-light 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">
        <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>

Amb un nom de marca que es mostra a l'esquerra i el commutador a la dreta:

<nav class="navbar navbar-expand-lg navbar-light 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">
        <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>

Amb un commutador a l'esquerra i el nom de la marca a la dreta:

<nav class="navbar navbar-expand-lg navbar-light 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">
        <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>

Contingut extern

De vegades, voleu utilitzar el connector de col·lapse per activar un element contenidor per al contingut que estructuralment es troba fora del fitxer .navbar. Com que el nostre connector funciona amb la combinació idi , això es fa fàcilment!data-bs-target

<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>

Quan feu això, us recomanem incloure JavaScript addicional per moure el focus de manera programàtica al contenidor quan s'obre. En cas contrari, els usuaris de teclat i els usuaris de tecnologies d'assistència probablement tindran dificultats per trobar el contingut recentment revelat, sobretot si el contenidor que es va obrir arriba abans del commutador a l'estructura del document. També us recomanem que us assegureu que el commutador té l' aria-controlsatribut, apuntant al idcontenidor del contenidor. En teoria, això permet als usuaris de tecnologia d'assistència saltar directament del commutador al contenidor que controla, però el suport per a això actualment és força irregular.

Offcanvas

Transformeu la vostra barra de navegació expandible i plegable en un calaix offcanvas amb el connector offcanvas. Ampliem els estils predeterminats fora del llenç i fem servir les nostres .navbar-expand-*classes per crear una barra lateral de navegació dinàmica i flexible.

A l'exemple següent, per crear una barra de navegació fora del llenç que sempre es replega en tots els punts d'interrupció, ometeu la .navbar-expand-*classe completament.

<nav class="navbar navbar-light 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 text-reset" 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="#" id="offcanvasNavbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
              Dropdown
            </a>
            <ul class="dropdown-menu" aria-labelledby="offcanvasNavbarDropdown">
              <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">
          <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>

Per crear una barra de navegació fora del llenç que s'expandeixi a una barra de navegació normal en un punt d'interrupció específic com ara lg, utilitzeu .navbar-expand-lg.

<nav class="navbar navbar-light 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>

Sass

Les variables

$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-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-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;
$navbar-dark-brand-color:                 $navbar-dark-active-color;
$navbar-dark-brand-hover-color:           $navbar-dark-active-color;

Bucle

Les classes d'expandir/replegar la barra de navegació responsiva (per exemple, .navbar-expand-lg) es combinen amb el $breakpointsmapa i es generen mitjançant un bucle a 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: $navbar-nav-link-padding-x;
            padding-left: $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-header {
          display: none;
        }

        .offcanvas {
          position: inherit;
          bottom: 0;
          z-index: 1000;
          flex-grow: 1;
          visibility: visible !important; // stylelint-disable-line declaration-no-important
          background-color: transparent;
          border-right: 0;
          border-left: 0;
          @include transition(none);
          transform: none;
        }
        .offcanvas-top,
        .offcanvas-bottom {
          height: auto;
          border-top: 0;
          border-bottom: 0;
        }

        .offcanvas-body {
          display: flex;
          flex-grow: 0;
          padding: 0;
          overflow-y: visible;
        }
      }
    }
  }
}