Նավակներ և ներդիրներ
Փաստաթղթեր և օրինակներ, թե ինչպես օգտագործել 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>
վերը նշվածները, <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
Փոխեք s բաղադրիչի ոճը մոդիֆիկատորներով և կոմունալ ծառայություններով: Խառնեք և համապատասխանեցրեք ըստ անհրաժեշտության կամ ստեղծեք ձերը:
Հորիզոնական հավասարեցում
Փոխեք ձեր նավի հորիզոնական հավասարեցումը 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-ը և ավելացնում .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>
Մատչելիության վերաբերյալ
Եթե դուք օգտագործում եք navs՝ նավիգացիոն գիծ տրամադրելու համար, համոզվեք, որ ավելացրե՛ք a-ը role="navigation"
ի ամենատրամաբանական մայր կոնտեյների մեջ <ul>
կամ փաթաթեք <nav>
տարրը ամբողջ նավիգացիայի շուրջ: Մի ավելացրեք դերը <ul>
ինքնին, քանի որ դա կխանգարի այն հայտարարվել որպես փաստացի ցուցակ օժանդակ տեխնոլոգիաների կողմից:
Նկատի ունեցեք, որ նավիգացիոն գծերը, նույնիսկ եթե տեսողականորեն ձևավորված են որպես .nav-tabs
դասի ներդիրներ, չպետք է տրվեն կամ ատրիբուտներ : Սրանք հարմար են միայն դինամիկ ներդիրներով միջերեսների համար, ինչպես նկարագրված է ARIA-ի հեղինակային պրակտիկաների ուղեցույցի ներդիրների օրինակում : Տե՛ս JavaScript-ի վարքագիծը դինամիկ ներդիրներով ինտերֆեյսների համար այս բաժնում: Հատկանիշն անհրաժեշտ չէ դինամիկ ներդիրներով ինտերֆեյսներում, քանի որ մեր JavaScript-ը կարգավորում է ընտրված վիճակը՝ ավելացնելով ակտիվ ներդիրը:role="tablist"
role="tab"
role="tabpanel"
aria-current
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-ումՈրպես Bootstrap-ի զարգացող CSS փոփոխականների մոտեցման մաս, 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>
Tabs plugin-ն աշխատում է նաև դեղահաբերով:
Սա տեղապահի որոշ բովանդակություն է՝ « Գլխավոր» ներդիրի հետ կապված բովանդակությունը: Մեկ այլ ներդիրի սեղմումով այս մեկի տեսանելիությունը կփոխվի հաջորդի համար: 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-ի հեղինակային պրակտիկաների օրինակին համապատասխան՝ միայն ներկայումս ակտիվ ներդիրն է ստանում ստեղնաշարի ֆոկուս: Երբ 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
})