Անցեք հիմնական բովանդակությանը Բաց թողնել փաստաթղթերի նավարկություն
Check
in English

Նավակներ և ներդիրներ

Փաստաթղթեր և օրինակներ, թե ինչպես օգտագործել 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>վերը նշվածները, <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Փոխեք s բաղադրիչի ոճը մոդիֆիկատորներով և կոմունալ ծառայություններով: Խառնեք և համապատասխանեցրեք ըստ անհրաժեշտության կամ ստեղծեք ձերը:

Հորիզոնական հավասարեցում

Փոխեք ձեր նավի հորիզոնական հավասարեցումը 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-ը և ավելացնում .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-itemԱմբողջ հասանելի տարածքը ձեր s- ով համամասնորեն լրացնելու համար օգտագործեք .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>

Մատչելիության վերաբերյալ

Եթե ​​դուք օգտագործում եք navs՝ նավիգացիոն գիծ տրամադրելու համար, համոզվեք, որ ավելացրե՛ք a-ը role="navigation"ի ամենատրամաբանական մայր կոնտեյների մեջ <ul>կամ փաթաթեք <nav>տարրը ամբողջ նավիգացիայի շուրջ: Մի ավելացրեք դերը <ul>ինքնին, քանի որ դա կխանգարի այն հայտարարվել որպես փաստացի ցուցակ օժանդակ տեխնոլոգիաների կողմից:

Նկատի ունեցեք, որ նավիգացիոն գծերը, նույնիսկ եթե տեսողականորեն ձևավորված են որպես .nav-tabsդասի ներդիրներ, չպետք է տրվեն կամ ատրիբուտներ : Սրանք հարմար են միայն դինամիկ ներդիրներով միջերեսների համար, ինչպես նկարագրված է ARIA-ի հեղինակային պրակտիկաների ուղեցույցի ներդիրների օրինակում : Տե՛ս JavaScript-ի վարքագիծը դինամիկ ներդիրներով ինտերֆեյսների համար այս բաժնում: Հատկանիշն անհրաժեշտ չէ դինամիկ ներդիրներով ինտերֆեյսներում, քանի որ մեր JavaScript-ը կարգավորում է ընտրված վիճակը՝ ավելացնելով ակտիվ ներդիրը:role="tablist"role="tab"role="tabpanel"aria-currentaria-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-ում

Որպես 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 հավելվածը չի տարբերում հորիզոնական և ուղղահայաց ներդիրների ցուցակները, երբ խոսքը վերաբերում է կուրսորային բանալիների փոխազդեցությանը. անկախ ներդիրների ցանկի կողմնորոշումից, և՛ վերև, և՛ ձախ կուրսորը գնում են նախորդ ներդիր, իսկ ներքև և աջ կուրսորը՝ հաջորդ ներդիրը:

Ընդհանուր առմամբ, ստեղնաշարի նավարկությունը հեշտացնելու համար խորհուրդ է տրվում նաև ներդիրների վահանակներն ինքնին կենտրոնացնել, եթե ներդիրների վահանակի ներսում իմաստալից բովանդակություն պարունակող առաջին տարրն արդեն կենտրոնացված չէ: 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
})