Langkau ke kandungan utama Langkau ke navigasi dokumen
in English

Navbar

Dokumentasi dan contoh untuk pengepala navigasi Bootstrap yang berkuasa dan responsif, bar navigasi. Termasuk sokongan untuk penjenamaan, navigasi dan banyak lagi, termasuk sokongan untuk pemalam runtuh kami.

Bagaimana ia berfungsi

Inilah yang anda perlu ketahui sebelum memulakan dengan navbar:

  • Navbar memerlukan pembalut .navbaruntuk kelas skema warna.navbar-expand{-sm|-md|-lg|-xl|-xxl} dan runtuh responsif .
  • Navbar dan kandungannya adalah cecair secara lalai. Tukar bekas untuk mengehadkan lebar mendatarnya dengan cara yang berbeza.
  • Gunakan kelas utiliti jarak dan fleksibel kami untuk mengawal jarak dan penjajaran dalam bar navigasi.
  • Navbars responsif secara lalai, tetapi anda boleh mengubah suainya dengan mudah untuk mengubahnya. Tingkah laku responsif bergantung pada pemalam Runtuhkan JavaScript kami.
  • Pastikan kebolehaksesan dengan menggunakan <nav>elemen atau, jika menggunakan elemen yang lebih generik seperti <div>, tambahkan a role="navigation"pada setiap bar navigasi untuk mengenal pasti secara eksplisit ia sebagai kawasan mercu tanda bagi pengguna teknologi bantuan.
  • Tunjukkan item semasa dengan menggunakan aria-current="page"untuk halaman semasa atau aria-current="true"untuk item semasa dalam set.
Kesan animasi komponen ini bergantung pada prefers-reduced-motionpertanyaan media. Lihat bahagian gerakan yang dikurangkan dalam dokumentasi kebolehaksesan kami .

Kandungan yang disokong

Navbar datang dengan sokongan terbina dalam untuk segelintir sub-komponen. Pilih daripada yang berikut mengikut keperluan:

  • .navbar-branduntuk syarikat, produk atau nama projek anda.
  • .navbar-navuntuk navigasi berketinggian penuh dan ringan (termasuk sokongan untuk menu lungsur).
  • .navbar-toggleruntuk digunakan dengan pemalam runtuh kami dan gelagat togol navigasi lain.
  • Utiliti fleksibel dan jarakkan untuk sebarang kawalan dan tindakan bentuk.
  • .navbar-textuntuk menambah rentetan teks berpusat menegak.
  • .collapse.navbar-collapseuntuk mengumpulkan dan menyembunyikan kandungan navbar oleh titik putus induk.
  • Tambahkan pilihan .navbar-scrolluntuk menetapkan max-heightdan tatal kandungan bar navigasi yang dikembangkan .

Berikut ialah contoh semua subkomponen yang disertakan dalam bar navigasi bertema ringan responsif yang runtuh secara automatik pada lgtitik putus (besar).

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

Contoh ini menggunakan kelas utiliti latar belakang ( bg-light) dan jarak ( my-2, my-lg-0, me-sm-0, ).my-sm-0

Jenama

Ia .navbar-brandboleh digunakan pada kebanyakan elemen, tetapi sauh berfungsi dengan baik, kerana sesetengah elemen mungkin memerlukan kelas utiliti atau gaya tersuai.

Teks

Tambahkan teks anda dalam elemen dengan .navbar-brandkelas.

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

Imej

Anda boleh menggantikan teks dalam .navbar-branddengan <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>

Imej dan teks

Anda juga boleh menggunakan beberapa utiliti tambahan untuk menambah imej dan teks pada masa yang sama. Perhatikan penambahan .d-inline-blockdan .align-text-toppada <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>

Pautan navigasi bar navigasi membina .navpilihan kami dengan kelas pengubah suai mereka sendiri dan memerlukan penggunaan kelas toggler untuk penggayaan responsif yang betul. Navigasi dalam bar navigasi juga akan berkembang untuk menduduki sebanyak mungkin ruang mendatar untuk memastikan kandungan bar navigasi anda sejajar dengan selamat.

Tambahkan .activekelas .nav-linkuntuk menunjukkan halaman semasa.

Sila ambil perhatian bahawa anda juga harus menambah aria-currentatribut pada aktif .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>

Dan kerana kami menggunakan kelas untuk navigasi kami, anda boleh mengelakkan pendekatan berasaskan senarai sepenuhnya jika anda suka.

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

Anda juga boleh menggunakan dropdown dalam bar navigasi anda. Menu lungsur turun memerlukan elemen pembalut untuk kedudukan, jadi pastikan anda menggunakan elemen yang berasingan dan bersarang untuk .nav-itemdan .nav-linkseperti yang ditunjukkan di bawah.

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

Borang

Letakkan pelbagai kawalan bentuk dan komponen dalam bar navigasi:

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

Elemen anak serta-merta .navbarmenggunakan reka letak fleksibel dan akan lalai kepada justify-content: space-between. Gunakan utiliti flex tambahan seperti yang diperlukan untuk melaraskan tingkah laku ini.

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

Kumpulan input juga berfungsi. Jika bar nav anda ialah keseluruhan borang, atau kebanyakannya borang, anda boleh menggunakan <form>elemen sebagai bekas dan menyimpan beberapa 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>

Pelbagai butang disokong sebagai sebahagian daripada borang navbar ini juga. Ini juga merupakan peringatan yang bagus bahawa utiliti penjajaran menegak boleh digunakan untuk menjajarkan elemen bersaiz berbeza.

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

Teks

Navbar mungkin mengandungi bit teks dengan bantuan .navbar-text. Kelas ini melaraskan penjajaran menegak dan jarak mendatar untuk rentetan teks.

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

Campurkan dan padankan dengan komponen dan utiliti lain mengikut keperluan.

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

Skim warna

Memberi tema bar navigasi tidak pernah semudah ini berkat gabungan kelas dan background-colorutiliti tema. Pilih daripada .navbar-lightuntuk digunakan dengan warna latar belakang terang atau .navbar-darkuntuk warna latar belakang gelap. Kemudian, sesuaikan dengan .bg-*utiliti.

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

Bekas

Walaupun ia tidak diperlukan, anda boleh membungkus bar nav dalam a .containeruntuk memusatkannya pada halaman–walaupun ambil perhatian bahawa bekas dalam masih diperlukan. Atau anda boleh menambah bekas di dalam .navbaruntuk hanya memusatkan kandungan bar navigasi atas tetap atau statik .

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

Gunakan mana-mana bekas responsif untuk menukar keluasan kandungan dalam bar navigasi anda dipersembahkan.

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

Penempatan

Gunakan utiliti kedudukan kami untuk meletakkan bar navigasi dalam kedudukan bukan statik. Pilih daripada tetap ke atas, tetap ke bawah atau melekat pada bahagian atas (tatal dengan halaman sehingga ia mencapai bahagian atas, kemudian kekal di sana). Navbar tetap menggunakan position: fixed, bermakna ia ditarik daripada aliran biasa DOM dan mungkin memerlukan CSS tersuai (cth, padding-toppada <body>) untuk mengelakkan pertindihan dengan elemen lain.

Juga ambil perhatian bahawa .sticky-topmenggunakan position: sticky, yang tidak disokong sepenuhnya dalam setiap penyemak imbas .

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

Menatal

Tambahkan .navbar-nav-scrollpada .navbar-nav(atau subkomponen navbar lain) untuk mendayakan tatal menegak dalam kandungan boleh togol bar navigasi yang runtuh. Secara lalai, penatalan bermula pada 75vh(atau 75% daripada ketinggian port pandangan), tetapi anda boleh mengatasinya dengan sifat tersuai CSS tempatan --bs-navbar-heightatau gaya tersuai. Pada port pandangan yang lebih besar apabila bar navigasi dikembangkan, kandungan akan muncul seperti dalam bar navigasi lalai.

Sila ambil perhatian bahawa tingkah laku ini datang dengan potensi kelemahan overflow—apabila tetapan overflow-y: auto(diperlukan untuk menatal kandungan di sini), overflow-xadalah bersamaan dengan auto, yang akan memangkas beberapa kandungan mendatar.

Berikut ialah contoh navbar menggunakan .navbar-nav-scrolldengan style="--bs-scroll-height: 100px;", dengan beberapa utiliti margin tambahan untuk jarak optimum.

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

Tingkah laku responsif

Navbar boleh menggunakan .navbar-toggler, .navbar-collapse, dan .navbar-expand{-sm|-md|-lg|-xl|-xxl}kelas untuk menentukan masa kandungannya runtuh di belakang butang. Dalam kombinasi dengan utiliti lain, anda boleh dengan mudah memilih masa untuk menunjukkan atau menyembunyikan elemen tertentu.

Untuk bar navigasi yang tidak pernah runtuh, tambahkan .navbar-expandkelas pada bar navigasi. Untuk bar nav yang sentiasa runtuh, jangan tambah sebarang .navbar-expandkelas.

Toggler

Togol Navbar dijajarkan ke kiri secara lalai, tetapi sekiranya mereka mengikut elemen adik-beradik seperti a .navbar-brand, ia akan dijajarkan secara automatik ke hujung kanan. Membalikkan penanda anda akan membalikkan peletakan togol. Di bawah ialah contoh gaya togol yang berbeza.

Tanpa .navbar-brandditunjukkan pada titik putus terkecil:

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

Dengan nama jenama ditunjukkan di sebelah kiri dan togol di sebelah kanan:

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

Dengan togol di sebelah kiri dan nama jenama di sebelah kanan:

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

Kandungan luaran

Kadangkala anda ingin menggunakan pemalam runtuh untuk mencetuskan elemen bekas untuk kandungan yang secara berstruktur terletak di luar .navbar. Kerana pemalam kami berfungsi pada iddan data-bs-targetpadanan, itu mudah dilakukan!

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

Apabila anda melakukan ini, kami mengesyorkan memasukkan JavaScript tambahan untuk mengalihkan fokus secara pemprograman ke bekas apabila ia dibuka. Jika tidak, pengguna papan kekunci dan pengguna teknologi bantuan berkemungkinan akan mengalami kesukaran mencari kandungan yang baru didedahkan - terutamanya jika bekas yang dibuka datang sebelum togol dalam struktur dokumen. Kami juga mengesyorkan untuk memastikan bahawa togol mempunyai aria-controlsatribut, menunjuk pada idbekas kandungan. Secara teorinya, ini membolehkan pengguna teknologi bantuan melompat terus dari togol ke bekas yang dikawalnya–tetapi sokongan untuk perkara ini pada masa ini agak bertompok-tompok.

Luar Kanvas

Ubah navbar anda yang mengembang dan runtuh menjadi laci offcanvas dengan pemalam offcanvas. Kami melanjutkan kedua-dua gaya lalai offcanvas dan menggunakan .navbar-expand-*kelas kami untuk mencipta bar sisi navigasi yang dinamik dan fleksibel.

Dalam contoh di bawah, untuk mencipta navbar offcanvas yang sentiasa runtuh merentas semua titik putus, tinggalkan .navbar-expand-*kelas sepenuhnya.

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

Untuk mencipta navbar offcanvas yang berkembang menjadi navbar biasa pada titik putus tertentu seperti lg, gunakan .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

Pembolehubah

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

gelung

Kelas pengembangan/runtuhkan bar navigasi responsif (cth, .navbar-expand-lg) digabungkan dengan $breakpointspeta dan dijana melalui gelung dalam 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;
        }
      }
    }
  }
}