नव और टैब
बूटस्ट्रैप के शामिल नेविगेशन घटकों का उपयोग करने के तरीके के लिए दस्तावेज़ीकरण और उदाहरण।
आधार नौसेना
.nav
बूटस्ट्रैप में उपलब्ध नेविगेशन बेस क्लास से सक्रिय और अक्षम राज्यों में सामान्य मार्कअप और शैलियों को साझा करता है। प्रत्येक शैली के बीच स्विच करने के लिए संशोधक वर्ग स्वैप करें।
आधार .nav
घटक फ्लेक्सबॉक्स के साथ बनाया गया है और सभी प्रकार के नेविगेशन घटकों के निर्माण के लिए एक मजबूत आधार प्रदान करता है। इसमें कुछ स्टाइल ओवरराइड (सूचियों के साथ काम करने के लिए), बड़े हिट क्षेत्रों के लिए कुछ लिंक पैडिंग, और बुनियादी अक्षम स्टाइल शामिल हैं।
आधार घटक में कोई राज्य .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
संशोधक और उपयोगिताओं के साथ s घटक की शैली बदलें । आवश्यकतानुसार मिक्स एंड मैच करें, या अपना खुद का निर्माण करें।
क्षैतिज संरेखण
फ्लेक्सबॉक्स उपयोगिताओं के साथ अपनी नौसेना के क्षैतिज संरेखण को बदलें । डिफ़ॉल्ट रूप से, एनएवी बाएं-संरेखित होते हैं, लेकिन आप उन्हें आसानी से केंद्र या दाएं संरेखित में बदल सकते हैं।
के साथ केंद्रित .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
एक टैब्ड इंटरफ़ेस उत्पन्न करने के लिए कक्षा जोड़ता है। हमारे टैब जावास्क्रिप्ट प्लगइन के साथ टैब करने योग्य क्षेत्र बनाने के लिए उनका उपयोग करें ।
<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>
फ्लेक्स उपयोगिताओं के साथ कार्य करना
यदि आपको उत्तरदायी एनएवी विविधताओं की आवश्यकता है, तो फ्लेक्सबॉक्स उपयोगिताओं की एक श्रृंखला का उपयोग करने पर विचार करें । अधिक वर्बोज़ होने पर, ये उपयोगिताओं उत्तरदायी ब्रेकपॉइंट्स में अधिक अनुकूलन प्रदान करती हैं। नीचे दिए गए उदाहरण में, हमारी नौसेना सबसे कम ब्रेकपॉइंट पर खड़ी होगी, फिर एक क्षैतिज लेआउट के अनुकूल होगी जो छोटे ब्रेकपॉइंट से शुरू होने वाली उपलब्ध चौड़ाई को भरती है।
<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>
सुलभता के संबंध में
role="navigation"
यदि आप नेविगेशन बार प्रदान करने के लिए एनएवी का उपयोग कर रहे हैं, तो के सबसे तार्किक पैरेंट कंटेनर में जोड़ना सुनिश्चित करें , या संपूर्ण नेविगेशन के चारों ओर एक तत्व <ul>
लपेटें । <nav>
भूमिका को स्वयं में न जोड़ें <ul>
, क्योंकि इससे सहायक तकनीकों द्वारा इसे वास्तविक सूची के रूप में घोषित किए जाने से रोका जा सकेगा।
ध्यान दें कि नेविगेशन बार, भले ही .nav-tabs
कक्षा के साथ टैब के रूप में दृष्टिगत रूप से स्टाइल किए गए हों, उन्हें , या विशेषताएँ नहीं दी जानी चाहिए। ये केवल डायनेमिक टैब्ड इंटरफेस के लिए उपयुक्त हैं, जैसा कि ARIA ऑथरिंग प्रैक्टिस गाइड टैब पैटर्न में वर्णित है । एक उदाहरण के लिए इस खंड में गतिशील टैब्ड इंटरफेस के लिए जावास्क्रिप्ट व्यवहार देखें । डायनेमिक टैब्ड इंटरफेस पर विशेषता आवश्यक नहीं है क्योंकि हमारी जावास्क्रिप्ट सक्रिय टैब पर जोड़कर चयनित स्थिति को संभालती है।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>
सीएसएस
चर
v5.2.0 . में जोड़ा गयाबूटस्ट्रैप के विकसित हो रहे सीएसएस चर दृष्टिकोण के हिस्से के रूप में, एनएवी अब स्थानीय सीएसएस चर का उपयोग करते हैं .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};
सास चर
$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;
जावास्क्रिप्ट व्यवहार
bootstrap.js
स्थानीय सामग्री के टैब करने योग्य पैन बनाने के लिए हमारे नेविगेशनल टैब और गोलियों का विस्तार करने के लिए टैब जावास्क्रिप्ट प्लगइन का उपयोग करें—इसे व्यक्तिगत रूप से या संकलित फ़ाइल के माध्यम से शामिल करें।
यह कुछ प्लेसहोल्डर सामग्री है जो होम टैब की संबद्ध सामग्री है। दूसरे टैब पर क्लिक करने से इस टैब की दृश्यता अगले के लिए टॉगल हो जाएगी। टैब जावास्क्रिप्ट सामग्री दृश्यता और स्टाइल को नियंत्रित करने के लिए कक्षाओं को स्वैप करता है। आप इसे टैब, गोलियों और किसी भी अन्य- .nav
संचालित नेविगेशन के साथ उपयोग कर सकते हैं।
यह कुछ प्लेसहोल्डर सामग्री है जो प्रोफ़ाइल टैब की संबद्ध सामग्री है। दूसरे टैब पर क्लिक करने से इस टैब की दृश्यता अगले के लिए टॉगल हो जाएगी। टैब जावास्क्रिप्ट सामग्री दृश्यता और स्टाइल को नियंत्रित करने के लिए कक्षाओं को स्वैप करता है। आप इसे टैब, गोलियों और किसी भी अन्य- .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"
, क्योंकि यह नेविगेशन लैंडमार्क के रूप में तत्व की मूल भूमिका को ओवरराइड कर देगा। इसके बजाय, एक वैकल्पिक तत्व पर स्विच करें (नीचे दिए गए उदाहरण में, एक simple ) और इसके चारों ओर <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>
टैब प्लगइन गोलियों के साथ भी काम करता है।
यह कुछ प्लेसहोल्डर सामग्री है जो होम टैब की संबद्ध सामग्री है। दूसरे टैब पर क्लिक करने से इस टैब की दृश्यता अगले के लिए टॉगल हो जाएगी। टैब जावास्क्रिप्ट सामग्री दृश्यता और स्टाइल को नियंत्रित करने के लिए कक्षाओं को स्वैप करता है। आप इसे टैब, गोलियों और किसी भी अन्य- .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"
टैब सूची कंटेनर में भी जोड़ना चाहिए।
यह कुछ प्लेसहोल्डर सामग्री है जो होम टैब की संबद्ध सामग्री है। दूसरे टैब पर क्लिक करने से इस टैब की दृश्यता अगले के लिए टॉगल हो जाएगी। टैब जावास्क्रिप्ट सामग्री दृश्यता और स्टाइल को नियंत्रित करने के लिए कक्षाओं को स्वैप करता है। आप इसे टैब, गोलियों और किसी भी अन्य- .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
हालांकि, ध्यान दें कि जावास्क्रिप्ट प्लगइन क्षैतिज और लंबवत टैब सूचियों के बीच अंतर नहीं करता है जब कर्सर कुंजी इंटरैक्शन की बात आती है: टैब सूची के अभिविन्यास के बावजूद, ऊपर और बाएं कर्सर दोनों पिछले टैब पर जाते हैं, और नीचे और दाएं कर्सर पर जाते हैं अगला टैब।
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>
जावास्क्रिप्ट के माध्यम से
जावास्क्रिप्ट के माध्यम से टैब करने योग्य टैब सक्षम करें (प्रत्येक टैब को अलग-अलग सक्रिय करने की आवश्यकता है):
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>
तरीकों
अतुल्यकालिक तरीके और संक्रमण
सभी एपीआई विधियाँ अतुल्यकालिक हैं और एक संक्रमण शुरू करती हैं । ट्रांज़िशन शुरू होते ही वे कॉलर के पास वापस आ जाते हैं लेकिन उसके समाप्त होने से पहले । इसके अलावा, एक संक्रमण घटक पर एक विधि कॉल को नजरअंदाज कर दिया जाएगा ।
आपकी सामग्री को एक टैब तत्व के रूप में सक्रिय करता है।
आप कंस्ट्रक्टर के साथ एक टैब इंस्टेंस बना सकते हैं, उदाहरण के लिए:
const bsTab = new bootstrap.Tab('#myTab')
तरीका | विवरण |
---|---|
dispose |
किसी तत्व के टैब को नष्ट कर देता है। |
getInstance |
स्टेटिक विधि जो आपको डीओएम तत्व से जुड़े टैब इंस्टेंस को प्राप्त करने की अनुमति देती है, आप इसे इस तरह उपयोग कर सकते हैं bootstrap.Tab.getInstance(element) :। |
getOrCreateInstance |
स्टेटिक विधि जो एक डोम तत्व से जुड़े एक टैब इंस्टेंस को लौटाती है या यदि इसे प्रारंभ नहीं किया गया था तो एक नया बनाएं। आप इसे इस तरह इस्तेमाल कर सकते हैं 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
})