Прескокнете до главната содржина Прескокнете на навигацијата со документи
Check
in English

Navs и јазичиња

Документација и примери за тоа како да се користат вклучените компоненти за навигација на Bootstrap.

Основна навигација

Навигацијата достапна во Bootstrap споделува општо обележување и стилови, од основната .navкласа до активните и оневозможените состојби. Заменете ги класите на модификаторите за да се префрлате помеѓу секој стил.

Основната .navкомпонента е изградена со flexbox и обезбедува силна основа за изградба на сите видови навигациски компоненти. Вклучува некои отфрлања на стилови (за работа со списоци), некои облоги за врски за поголеми погодени области и основен оневозможен стајлинг.

Основната .navкомпонента не вклучува никаква .activeсостојба. Следниве примери ја вклучуваат класата, главно за да покажат дека оваа конкретна класа не предизвикува посебен стил.

За да ја пренесете активната состојба на помошните технологии, користете го aria-currentатрибутот — користејќи ја pageвредноста за тековната страница или trueза тековната ставка во множеството.

html
<ul class="nav">
  <li class="nav-item">
    <a class="nav-link active" aria-current="page" href="#">Active</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" href="#">Link</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>

Часовите се користат насекаде, така што вашето обележување може да биде супер флексибилно. Користете <ul>s како погоре, <ol>ако редоследот на вашите артикли е важен, или превртете го вашиот со <nav>елемент. Поради .navупотребата display: flex, врските за навигација се однесуваат исто како и ставките за навигација, но без дополнителна ознака.

html
<nav class="nav">
  <a class="nav-link active" aria-current="page" href="#">Active</a>
  <a class="nav-link" href="#">Link</a>
  <a class="nav-link" href="#">Link</a>
  <a class="nav-link disabled">Disabled</a>
</nav>

Достапни стилови

Променете го стилот на .navкомпонентата со модификатори и алатки. Измешајте и спојте по потреба, или изградете свој.

Хоризонтално порамнување

Променете го хоризонталното порамнување на вашата навигација со помошните алатки на flexbox . Стандардно, навигациите се порамнети лево, но можете лесно да ги промените во центар или десно.

Центрирано со .justify-content-center:

html
<ul class="nav justify-content-center">
  <li class="nav-item">
    <a class="nav-link active" aria-current="page" href="#">Active</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" href="#">Link</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>

Десно порамнето со .justify-content-end:

html
<ul class="nav justify-content-end">
  <li class="nav-item">
    <a class="nav-link active" aria-current="page" href="#">Active</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" href="#">Link</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>

Вертикално

Ставете ја вашата навигација со менување на насоката на флексибилни ставки со .flex-columnпомошната алатка. Дали треба да ги ставите на некои пристаништа за гледање, но не и на други? Користете ги одговорните верзии (на пример, .flex-sm-column).

html
<ul class="nav flex-column">
  <li class="nav-item">
    <a class="nav-link active" aria-current="page" href="#">Active</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" href="#">Link</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>

Како и секогаш, вертикалната навигација е можна и без <ul>s.

html
<nav class="nav flex-column">
  <a class="nav-link active" aria-current="page" href="#">Active</a>
  <a class="nav-link" href="#">Link</a>
  <a class="nav-link" href="#">Link</a>
  <a class="nav-link disabled">Disabled</a>
</nav>

Јазичиња

Ја зема основната навигација одозгора и ја додава .nav-tabsкласата за да генерира интерфејс со јазичиња. Користете ги за да креирате региони за јазичиња со нашиот приклучок JavaScript за јазичиња .

html
<ul class="nav nav-tabs">
  <li class="nav-item">
    <a class="nav-link active" aria-current="page" href="#">Active</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" href="#">Link</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>

Апчиња

Земете го истиот HTML, но .nav-pillsнаместо тоа користете:

html
<ul class="nav nav-pills">
  <li class="nav-item">
    <a class="nav-link active" aria-current="page" href="#">Active</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" href="#">Link</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>

Пополнете и оправдајте

Присилете ја .navсодржината на вашата да ја прошири целосната достапна ширина една од двете класи на модификатори. За пропорционално да го пополните целиот расположлив простор со вашите .nav-items, користете .nav-fill. Забележете дека целиот хоризонтален простор е зафатен, но не секоја ставка за навигација има иста ширина.

html
<ul class="nav nav-pills nav-fill">
  <li class="nav-item">
    <a class="nav-link active" aria-current="page" href="#">Active</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" href="#">Much longer nav link</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>

Кога користите <nav>навигација заснована, можете безбедно да испуштите .nav-itemбидејќи .nav-linkе потребно само за елементите за стилизирање <a>.

html
<nav class="nav nav-pills nav-fill">
  <a class="nav-link active" aria-current="page" href="#">Active</a>
  <a class="nav-link" href="#">Much longer nav link</a>
  <a class="nav-link" href="#">Link</a>
  <a class="nav-link disabled">Disabled</a>
</nav>

За елементи со еднаква ширина, користете .nav-justified. Целиот хоризонтален простор ќе биде окупиран од навигациските врски, но за разлика од .nav-fillгоренаведените, секоја ставка за навигација ќе биде со иста ширина.

html
<ul class="nav nav-pills nav-justified">
  <li class="nav-item">
    <a class="nav-link active" aria-current="page" href="#">Active</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" href="#">Much longer nav link</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>

Слично на .nav-fillпримерот со користење на <nav>навигација заснована.

html
<nav class="nav nav-pills nav-justified">
  <a class="nav-link active" aria-current="page" href="#">Active</a>
  <a class="nav-link" href="#">Much longer nav link</a>
  <a class="nav-link" href="#">Link</a>
  <a class="nav-link disabled">Disabled</a>
</nav>

Работа со флекс комунални услуги

Ако ви требаат респонзивни варијации на навигација, размислете за користење на низа комунални услуги на flexbox . Иако се пообемни, овие алатки нудат поголемо приспособување на точките на прекин. Во примерот подолу, нашата навигација ќе биде наредена на најниската точка на прекин, а потоа ќе се прилагоди на хоризонтален распоред што ја исполнува достапната ширина почнувајќи од малата точка на прекин.

html
<nav class="nav nav-pills flex-column flex-sm-row">
  <a class="flex-sm-fill text-sm-center nav-link active" aria-current="page" href="#">Active</a>
  <a class="flex-sm-fill text-sm-center nav-link" href="#">Longer nav link</a>
  <a class="flex-sm-fill text-sm-center nav-link" href="#">Link</a>
  <a class="flex-sm-fill text-sm-center nav-link disabled">Disabled</a>
</nav>

Во однос на пристапноста

Ако користите навигација за да обезбедите лента за навигација, погрижете се да додадете a role="navigation"во најлогичниот родителски контејнер на <ul>, или да завиткате <nav>елемент околу целата навигација. Не ја додавајте улогата на <ul>самата, бидејќи тоа ќе спречи да биде објавена како вистинска листа од помошните технологии.

Забележете дека лентите за навигација, дури и ако визуелно се стилизирани како јазичиња со .nav-tabsкласата, не треба да се даваат role="tablist", role="tab"​​или role="tabpanel"атрибути. Овие се соодветни само за динамични интерфејси со јазичиња, како што е опишано во шаблонот на картичките за Водич за авторски практики ARIA . Видете го однесувањето на JavaScript за динамични интерфејси со јазичиња во овој дел за пример. Атрибутот aria-currentне е неопходен на динамичните интерфејси со јазичиња, бидејќи нашиот JavaScript се справува со избраната состојба со додавање aria-selected="true"на активното јазиче.

Користење на паѓачки мени

Додадете паѓачки менија со малку дополнителен HTML и паѓачкиот приклучок JavaScript .

Јазичиња со паѓачки мени

html
<ul class="nav nav-tabs">
  <li class="nav-item">
    <a class="nav-link active" aria-current="page" href="#">Active</a>
  </li>
  <li class="nav-item dropdown">
    <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" 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><a class="dropdown-item" href="#">Something else here</a></li>
      <li><hr class="dropdown-divider"></li>
      <li><a class="dropdown-item" href="#">Separated link</a></li>
    </ul>
  </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>

Апчиња со капки

html
<ul class="nav nav-pills">
  <li class="nav-item">
    <a class="nav-link active" aria-current="page" href="#">Active</a>
  </li>
  <li class="nav-item dropdown">
    <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" 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><a class="dropdown-item" href="#">Something else here</a></li>
      <li><hr class="dropdown-divider"></li>
      <li><a class="dropdown-item" href="#">Separated link</a></li>
    </ul>
  </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>

CSS

Променливи

Додадено во v5.2.0

Како дел од пристапот на еволуирачки CSS променливи на Bootstrap, navs сега користат локални CSS променливи на .nav, .nav-tabsи .nav-pillsза подобрено прилагодување во реално време. Вредностите за променливите CSS се поставени преку Sass, така што прилагодувањето на Sass сè уште е поддржано.

На .navосновната класа:

  --#{$prefix}nav-link-padding-x: #{$nav-link-padding-x};
  --#{$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: #{$nav-link-color};
  --#{$prefix}nav-link-hover-color: #{$nav-link-hover-color};
  --#{$prefix}nav-link-disabled-color: #{$nav-link-disabled-color};
  

На .nav-tabsкласата на модификатори:

  --#{$prefix}nav-tabs-border-width: #{$nav-tabs-border-width};
  --#{$prefix}nav-tabs-border-color: #{$nav-tabs-border-color};
  --#{$prefix}nav-tabs-border-radius: #{$nav-tabs-border-radius};
  --#{$prefix}nav-tabs-link-hover-border-color: #{$nav-tabs-link-hover-border-color};
  --#{$prefix}nav-tabs-link-active-color: #{$nav-tabs-link-active-color};
  --#{$prefix}nav-tabs-link-active-bg: #{$nav-tabs-link-active-bg};
  --#{$prefix}nav-tabs-link-active-border-color: #{$nav-tabs-link-active-border-color};
  

На .nav-pillsкласата на модификатори:

  --#{$prefix}nav-pills-border-radius: #{$nav-pills-border-radius};
  --#{$prefix}nav-pills-link-active-color: #{$nav-pills-link-active-color};
  --#{$prefix}nav-pills-link-active-bg: #{$nav-pills-link-active-bg};
  

Sass променливи

$nav-link-padding-y:                .5rem;
$nav-link-padding-x:                1rem;
$nav-link-font-size:                null;
$nav-link-font-weight:              null;
$nav-link-color:                    var(--#{$prefix}link-color);
$nav-link-hover-color:              var(--#{$prefix}link-hover-color);
$nav-link-transition:               color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out;
$nav-link-disabled-color:           $gray-600;

$nav-tabs-border-color:             $gray-300;
$nav-tabs-border-width:             $border-width;
$nav-tabs-border-radius:            $border-radius;
$nav-tabs-link-hover-border-color:  $gray-200 $gray-200 $nav-tabs-border-color;
$nav-tabs-link-active-color:        $gray-700;
$nav-tabs-link-active-bg:           $body-bg;
$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg;

$nav-pills-border-radius:           $border-radius;
$nav-pills-link-active-color:       $component-active-color;
$nav-pills-link-active-bg:          $component-active-bg;

Однесување на JavaScript

Користете го приклучокот за јазичиња JavaScript - вклучете го поединечно или преку компајлираната bootstrap.jsдатотека - за да ги проширите нашите навигациски картички и апчиња за да креирате табли со локална содржина.

Ова е одредена содржина на место за место , поврзана содржина на картичката Почетна страница . Со кликнување на друго јазиче ќе се смени видливоста на оваа за следната. Јазичето JavaScript ги заменува класите за да ја контролира видливоста и стилизирањето на содржината. Можете да го користите со јазичиња, апчиња и која било друга .navнавигација со напојување.

Ова е одредена содржина на место за место , поврзана содржина на картичката Профил . Со кликнување на друго јазиче ќе се смени видливоста на оваа за следната. Јазичето JavaScript ги заменува класите за да ја контролира видливоста и стилизирањето на содржината. Можете да го користите со јазичиња, апчиња и која било друга .navнавигација со напојување.

This is some placeholder content the Contact tab's associated content. Clicking another tab will toggle the visibility of this one for the next. The tab JavaScript swaps classes to control the content visibility and styling. You can use it with tabs, pills, and any other .nav-powered navigation.

This is some placeholder content the Disabled tab's associated content.

<ul class="nav nav-tabs" id="myTab" role="tablist">
  <li class="nav-item" role="presentation">
    <button class="nav-link active" id="home-tab" data-bs-toggle="tab" data-bs-target="#home-tab-pane" type="button" role="tab" aria-controls="home-tab-pane" aria-selected="true">Home</button>
  </li>
  <li class="nav-item" role="presentation">
    <button class="nav-link" id="profile-tab" data-bs-toggle="tab" data-bs-target="#profile-tab-pane" type="button" role="tab" aria-controls="profile-tab-pane" aria-selected="false">Profile</button>
  </li>
  <li class="nav-item" role="presentation">
    <button class="nav-link" id="contact-tab" data-bs-toggle="tab" data-bs-target="#contact-tab-pane" type="button" role="tab" aria-controls="contact-tab-pane" aria-selected="false">Contact</button>
  </li>
  <li class="nav-item" role="presentation">
    <button class="nav-link" id="disabled-tab" data-bs-toggle="tab" data-bs-target="#disabled-tab-pane" type="button" role="tab" aria-controls="disabled-tab-pane" aria-selected="false" disabled>Disabled</button>
  </li>
</ul>
<div class="tab-content" id="myTabContent">
  <div class="tab-pane fade show active" id="home-tab-pane" role="tabpanel" aria-labelledby="home-tab" tabindex="0">...</div>
  <div class="tab-pane fade" id="profile-tab-pane" role="tabpanel" aria-labelledby="profile-tab" tabindex="0">...</div>
  <div class="tab-pane fade" id="contact-tab-pane" role="tabpanel" aria-labelledby="contact-tab" tabindex="0">...</div>
  <div class="tab-pane fade" id="disabled-tab-pane" role="tabpanel" aria-labelledby="disabled-tab" tabindex="0">...</div>
</div>

За да помогне да се задоволат вашите потреби, ова функционира со <ul>означување базирано, како што е прикажано погоре, или со било каква произволна ознака „превртете своја сопствена“. Забележете дека ако користите <nav>, не треба да додавате role="tablist"директно на него, бидејќи тоа ќе ја отфрли основната улога на елементот како обележје за навигација. Наместо тоа, префрлете се на алтернативен елемент (во примерот подолу, едноставен <div>) и завиткајте го <nav>околу него.

<nav>
  <div class="nav nav-tabs" id="nav-tab" role="tablist">
    <button class="nav-link active" id="nav-home-tab" data-bs-toggle="tab" data-bs-target="#nav-home" type="button" role="tab" aria-controls="nav-home" aria-selected="true">Home</button>
    <button class="nav-link" id="nav-profile-tab" data-bs-toggle="tab" data-bs-target="#nav-profile" type="button" role="tab" aria-controls="nav-profile" aria-selected="false">Profile</button>
    <button class="nav-link" id="nav-contact-tab" data-bs-toggle="tab" data-bs-target="#nav-contact" type="button" role="tab" aria-controls="nav-contact" aria-selected="false">Contact</button>
    <button class="nav-link" id="nav-disabled-tab" data-bs-toggle="tab" data-bs-target="#nav-disabled" type="button" role="tab" aria-controls="nav-disabled" aria-selected="false" disabled>Disabled</button>
  </div>
</nav>
<div class="tab-content" id="nav-tabContent">
  <div class="tab-pane fade show active" id="nav-home" role="tabpanel" aria-labelledby="nav-home-tab" tabindex="0">...</div>
  <div class="tab-pane fade" id="nav-profile" role="tabpanel" aria-labelledby="nav-profile-tab" tabindex="0">...</div>
  <div class="tab-pane fade" id="nav-contact" role="tabpanel" aria-labelledby="nav-contact-tab" tabindex="0">...</div>
  <div class="tab-pane fade" id="nav-disabled" role="tabpanel" aria-labelledby="nav-disabled-tab" tabindex="0">...</div>
</div>

Приклучокот за јазичиња исто така работи со апчиња.

Ова е одредена содржина на место за место , поврзана содржина на картичката Почетна страница . Со кликнување на друго јазиче ќе се смени видливоста на оваа за следната. Јазичето JavaScript ги заменува класите за да ја контролира видливоста и стилизирањето на содржината. Можете да го користите со јазичиња, апчиња и која било друга .navнавигација со напојување.

This is some placeholder content the Profile tab's associated content. Clicking another tab will toggle the visibility of this one for the next. The tab JavaScript swaps classes to control the content visibility and styling. You can use it with tabs, pills, and any other .nav-powered navigation.

This is some placeholder content the Contact tab's associated content. Clicking another tab will toggle the visibility of this one for the next. The tab JavaScript swaps classes to control the content visibility and styling. You can use it with tabs, pills, and any other .nav-powered navigation.

This is some placeholder content the Disabled tab's associated content.

<ul class="nav nav-pills mb-3" id="pills-tab" role="tablist">
  <li class="nav-item" role="presentation">
    <button class="nav-link active" id="pills-home-tab" data-bs-toggle="pill" data-bs-target="#pills-home" type="button" role="tab" aria-controls="pills-home" aria-selected="true">Home</button>
  </li>
  <li class="nav-item" role="presentation">
    <button class="nav-link" id="pills-profile-tab" data-bs-toggle="pill" data-bs-target="#pills-profile" type="button" role="tab" aria-controls="pills-profile" aria-selected="false">Profile</button>
  </li>
  <li class="nav-item" role="presentation">
    <button class="nav-link" id="pills-contact-tab" data-bs-toggle="pill" data-bs-target="#pills-contact" type="button" role="tab" aria-controls="pills-contact" aria-selected="false">Contact</button>
  </li>
  <li class="nav-item" role="presentation">
    <button class="nav-link" id="pills-disabled-tab" data-bs-toggle="pill" data-bs-target="#pills-disabled" type="button" role="tab" aria-controls="pills-disabled" aria-selected="false" disabled>Disabled</button>
  </li>
</ul>
<div class="tab-content" id="pills-tabContent">
  <div class="tab-pane fade show active" id="pills-home" role="tabpanel" aria-labelledby="pills-home-tab" tabindex="0">...</div>
  <div class="tab-pane fade" id="pills-profile" role="tabpanel" aria-labelledby="pills-profile-tab" tabindex="0">...</div>
  <div class="tab-pane fade" id="pills-contact" role="tabpanel" aria-labelledby="pills-contact-tab" tabindex="0">...</div>
  <div class="tab-pane fade" id="pills-disabled" role="tabpanel" aria-labelledby="pills-disabled-tab" tabindex="0">...</div>
</div>

И тоа со вертикални апчиња. Идеално, за вертикални јазичиња, треба да додадете aria-orientation="vertical"и во контејнерот со список со јазичиња.

Ова е одредена содржина на место за место , поврзана содржина на картичката Почетна страница . Со кликнување на друго јазиче ќе се смени видливоста на оваа за следната. Јазичето JavaScript ги заменува класите за да ја контролира видливоста и стилизирањето на содржината. Можете да го користите со јазичиња, апчиња и која било друга .navнавигација со напојување.

This is some placeholder content the Profile tab's associated content. Clicking another tab will toggle the visibility of this one for the next. The tab JavaScript swaps classes to control the content visibility and styling. You can use it with tabs, pills, and any other .nav-powered navigation.

This is some placeholder content the Disabled tab's associated content.

This is some placeholder content the Messages tab's associated content. Clicking another tab will toggle the visibility of this one for the next. The tab JavaScript swaps classes to control the content visibility and styling. You can use it with tabs, pills, and any other .nav-powered navigation.

This is some placeholder content the Settings tab's associated content. Clicking another tab will toggle the visibility of this one for the next. The tab JavaScript swaps classes to control the content visibility and styling. You can use it with tabs, pills, and any other .nav-powered navigation.

<div class="d-flex align-items-start">
  <div class="nav flex-column nav-pills me-3" id="v-pills-tab" role="tablist" aria-orientation="vertical">
    <button class="nav-link active" id="v-pills-home-tab" data-bs-toggle="pill" data-bs-target="#v-pills-home" type="button" role="tab" aria-controls="v-pills-home" aria-selected="true">Home</button>
    <button class="nav-link" id="v-pills-profile-tab" data-bs-toggle="pill" data-bs-target="#v-pills-profile" type="button" role="tab" aria-controls="v-pills-profile" aria-selected="false">Profile</button>
    <button class="nav-link" id="v-pills-disabled-tab" data-bs-toggle="pill" data-bs-target="#v-pills-disabled" type="button" role="tab" aria-controls="v-pills-disabled" aria-selected="false" disabled>Disabled</button>
    <button class="nav-link" id="v-pills-messages-tab" data-bs-toggle="pill" data-bs-target="#v-pills-messages" type="button" role="tab" aria-controls="v-pills-messages" aria-selected="false">Messages</button>
    <button class="nav-link" id="v-pills-settings-tab" data-bs-toggle="pill" data-bs-target="#v-pills-settings" type="button" role="tab" aria-controls="v-pills-settings" aria-selected="false">Settings</button>
  </div>
  <div class="tab-content" id="v-pills-tabContent">
    <div class="tab-pane fade show active" id="v-pills-home" role="tabpanel" aria-labelledby="v-pills-home-tab" tabindex="0">...</div>
    <div class="tab-pane fade" id="v-pills-profile" role="tabpanel" aria-labelledby="v-pills-profile-tab" tabindex="0">...</div>
    <div class="tab-pane fade" id="v-pills-disabled" role="tabpanel" aria-labelledby="v-pills-disabled-tab" tabindex="0">...</div>
    <div class="tab-pane fade" id="v-pills-messages" role="tabpanel" aria-labelledby="v-pills-messages-tab" tabindex="0">...</div>
    <div class="tab-pane fade" id="v-pills-settings" role="tabpanel" aria-labelledby="v-pills-settings-tab" tabindex="0">...</div>
  </div>
</div>

Пристапност

Динамичните интерфејси со јазичиња, како што е опишано во шаблонот на табовите за Водич за авторски практики ARIA , бараат role="tablist", role="tab"​​, role="tabpanel"и дополнителни aria-атрибути со цел да се пренесат нивната структура, функционалност и моментална состојба на корисниците на помошните технологии (како што се читачите на екран). Како најдобра практика, препорачуваме да користите <button>елементи за картичките, бидејќи тоа се контроли што предизвикуваат динамична промена, наместо врски што се движат до нова страница или локација.

Во согласност со шаблонот на ARIA Authoring Practices, само моментално активниот таб добива фокус на тастатурата. Кога приклучокот JavaScript ќе се иницијализира, ќе се постави tabindex="-1"на сите неактивни контроли на јазичињата. Откако моментално активното јазиче ќе се фокусира, копчињата на курсорот го активираат претходното/следното јазиче, при што приклучокот соодветно го менува скитувањетоtabindex . Сепак, имајте предвид дека приклучокот JavaScript не прави разлика помеѓу хоризонтални и вертикални листи на јазичиња кога станува збор за интеракции со клучеви на курсорот: без оглед на ориентацијата на списокот со јазичиња, и горе и левиот курсор одат на претходната картичка, а надолу и десниот курсор одат на следниот таб.

Општо земено, за да се олесни навигацијата со тастатура, се препорачува и самите панели со јазичиња да се фокусираат, освен ако првиот елемент што содржи значајна содржина во таблата со јазичиња е веќе фокусиран. Приклучокот JavaScript не се обидува да се справи со овој аспект - каде што е соодветно, ќе треба експлицитно да ги направите панелите на јазичињата да бидат фокусирани со додавање tabindex="0"во вашата ознака.
Приклучокот за јазичиња JavaScript не поддржува интерфејси со јазичиња што содржат паѓачки менија, бидејќи тие предизвикуваат проблеми и со употребливоста и со пристапноста. Од гледна точка на употребливост, фактот што елементот за активирање на моментално прикажаниот таб не е веднаш видлив (бидејќи е внатре во затвореното паѓачко мени) може да предизвика конфузија. Од гледна точка на пристапност, во моментов не постои разумен начин да се мапира овој вид конструкција на стандардна шема на WAI ARIA, што значи дека не може лесно да се направи разбирлив за корисниците на помошните технологии.

Користење на атрибути на податоци

Можете да активирате навигација со јазиче или таблети без да пишувате JavaScript со едноставно назначување data-bs-toggle="tab"или data-bs-toggle="pill"на елемент. Користете ги овие атрибути на податоци на .nav-tabsили .nav-pills.

<!-- Nav tabs -->
<ul class="nav nav-tabs" id="myTab" role="tablist">
  <li class="nav-item" role="presentation">
    <button class="nav-link active" id="home-tab" data-bs-toggle="tab" data-bs-target="#home" type="button" role="tab" aria-controls="home" aria-selected="true">Home</button>
  </li>
  <li class="nav-item" role="presentation">
    <button class="nav-link" id="profile-tab" data-bs-toggle="tab" data-bs-target="#profile" type="button" role="tab" aria-controls="profile" aria-selected="false">Profile</button>
  </li>
  <li class="nav-item" role="presentation">
    <button class="nav-link" id="messages-tab" data-bs-toggle="tab" data-bs-target="#messages" type="button" role="tab" aria-controls="messages" aria-selected="false">Messages</button>
  </li>
  <li class="nav-item" role="presentation">
    <button class="nav-link" id="settings-tab" data-bs-toggle="tab" data-bs-target="#settings" type="button" role="tab" aria-controls="settings" aria-selected="false">Settings</button>
  </li>
</ul>

<!-- Tab panes -->
<div class="tab-content">
  <div class="tab-pane active" id="home" role="tabpanel" aria-labelledby="home-tab" tabindex="0">...</div>
  <div class="tab-pane" id="profile" role="tabpanel" aria-labelledby="profile-tab" tabindex="0">...</div>
  <div class="tab-pane" id="messages" role="tabpanel" aria-labelledby="messages-tab" tabindex="0">...</div>
  <div class="tab-pane" id="settings" role="tabpanel" aria-labelledby="settings-tab" tabindex="0">...</div>
</div>

Преку JavaScript

Овозможете јазичиња со јазичиња преку JavaScript (секоја картичка треба да се активира поединечно):

const triggerTabList = document.querySelectorAll('#myTab button')
triggerTabList.forEach(triggerEl => {
  const tabTrigger = new bootstrap.Tab(triggerEl)

  triggerEl.addEventListener('click', event => {
    event.preventDefault()
    tabTrigger.show()
  })
})

Можете да активирате поединечни јазичиња на неколку начини:

const triggerEl = document.querySelector('#myTab button[data-bs-target="#profile"]')
bootstrap.Tab.getInstance(triggerEl).show() // Select tab by name

const triggerFirstTabEl = document.querySelector('#myTab li:first-child button')
bootstrap.Tab.getInstance(triggerFirstTabEl).show() // Select first tab

Избледување ефект

За да избледат картичките, додајте .fadeна секоја .tab-pane. Првиот таб на јазичиња, исто така, мора .showда ја направи видлива почетната содржина.

<div class="tab-content">
  <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab" tabindex="0">...</div>
  <div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab" tabindex="0">...</div>
  <div class="tab-pane fade" id="messages" role="tabpanel" aria-labelledby="messages-tab" tabindex="0">...</div>
  <div class="tab-pane fade" id="settings" role="tabpanel" aria-labelledby="settings-tab" tabindex="0">...</div>
</div>

Методи

Асинхрони методи и транзиции

Сите API методи се асинхрони и започнуваат транзиција . Тие се враќаат кај повикувачот штом ќе започне транзицијата, но пред да заврши . Дополнително, повик на метод на компонента во транзиција ќе се игнорира .

Погледнете ја нашата JavaScript документација за повеќе информации .

Ја активира вашата содржина како елемент на јазичето.

Можете да креирате пример за јазиче со конструкторот, на пример:

const bsTab = new bootstrap.Tab('#myTab')
Метод Опис
dispose Уништува јазичето на елементот.
getInstance Статички метод кој ви овозможува да го добиете примерот на јазичето поврзан со елементот DOM, можете да го користите вака: bootstrap.Tab.getInstance(element).
getOrCreateInstance Статички метод кој враќа пример на јазиче поврзан со елемент DOM или создава нов во случај да не е иницијализиран. Можете да го користите вака bootstrap.Tab.getOrCreateInstance(element):.
show Го избира даденото јазиче и го прикажува неговото поврзано окно. Секое друго претходно избрано јазиче станува неизбрано и поврзаното окно е скриено. Се враќа кај повикувачот пред да се прикаже окното со јазичиња (т.е. пред да се shown.bs.tabслучи настанот).

Настани

Кога се прикажува нова картичка, настаните се активираат по следниот редослед:

  1. hide.bs.tab(на тековното активно јазиче)
  2. show.bs.tab(на картичката што треба да се прикаже)
  3. hidden.bs.tab(на претходната активна картичка, истата како и за hide.bs.tabнастанот)
  4. shown.bs.tab(на ново-активниот штотуку прикажан таб, исто како и за show.bs.tabнастанот)

Ако ниту една картичка веќе не била активна, тогаш настаните hide.bs.tabи нема да се активираат.hidden.bs.tab

Тип на настан Опис
hide.bs.tab Овој настан се вклучува кога треба да се прикаже ново јазиче (а со тоа и претходното активно јазиче треба да се скрие). Користете event.targetи event.relatedTargetза да го насочите тековниот активен таб и новата картичка што наскоро ќе биде активна, соодветно.
hidden.bs.tab Овој настан се вклучува откако ќе се прикаже нов таб (а со тоа и претходното активно јазиче е скриено). Користете event.targetи event.relatedTargetза насочување на претходното активно и новото активно јазиче, соодветно.
show.bs.tab Овој настан се вклучува на прикажување на јазичиња, но пред да се прикаже новата картичка. Користете event.targetи event.relatedTargetза да го насочите активното јазиче и претходното активно јазиче (ако е достапно), соодветно.
shown.bs.tab Овој настан се вклучува на прикажување на јазичиња откако ќе се прикаже картичка. Користете event.targetи event.relatedTargetза да го насочите активното јазиче и претходното активно јазиче (ако е достапно), соодветно.
const tabEl = document.querySelector('button[data-bs-toggle="tab"]')
tabEl.addEventListener('shown.bs.tab', event => {
  event.target // newly activated tab
  event.relatedTarget // previous active tab
})