Navs и јазичиња
Документација и примери за тоа како да се користат вклучените компоненти за навигација на Bootstrap.
Основна навигација
Навигацијата достапна во Bootstrap споделува општо обележување и стилови, од основната .nav
класа до активните и оневозможените состојби. Заменете ги класите на модификаторите за да се префрлате помеѓу секој стил.
Основната .nav
компонента е изградена со flexbox и обезбедува силна основа за изградба на сите видови навигациски компоненти. Вклучува некои отфрлања на стилови (за работа со списоци), некои облоги за врски за поголеми погодени области и основен оневозможен стајлинг.
Основната .nav
компонента не вклучува никаква .active
состојба. Следниве примери ја вклучуваат класата, главно за да покажат дека оваа конкретна класа не предизвикува посебен стил.
За да ја пренесете активната состојба на помошните технологии, користете го aria-current
атрибутот — користејќи ја page
вредноста за тековната страница или true
за тековната ставка во множеството.
<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
, врските за навигација се однесуваат исто како и ставките за навигација, но без дополнителна ознака.
<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
:
<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
:
<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
).
<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.
<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 за јазичиња .
<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
наместо тоа користете:
<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-item
s, користете .nav-fill
. Забележете дека целиот хоризонтален простор е зафатен, но не секоја ставка за навигација има иста ширина.
<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>
.
<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
горенаведените, секоја ставка за навигација ќе биде со иста ширина.
<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>
навигација заснована.
<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 . Иако се пообемни, овие алатки нудат поголемо приспособување на точките на прекин. Во примерот подолу, нашата навигација ќе биде наредена на најниската точка на прекин, а потоа ќе се прилагоди на хоризонтален распоред што ја исполнува достапната ширина почнувајќи од малата точка на прекин.
<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 .
Јазичиња со паѓачки мени
<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>
Апчиња со капки
<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 не прави разлика помеѓу хоризонтални и вертикални листи на јазичиња кога станува збор за интеракции со клучеви на курсорот: без оглед на ориентацијата на списокот со јазичиња, и горе и левиот курсор одат на претходната картичка, а надолу и десниот курсор одат на следниот таб.
tabindex="0"
во вашата ознака.
Користење на атрибути на податоци
Можете да активирате навигација со јазиче или таблети без да пишувате 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 случи настанот). |
Настани
Кога се прикажува нова картичка, настаните се активираат по следниот редослед:
hide.bs.tab
(на тековното активно јазиче)show.bs.tab
(на картичката што треба да се прикаже)hidden.bs.tab
(на претходната активна картичка, истата како и заhide.bs.tab
настанот)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
})