Navs এবং ট্যাব
বুটস্ট্র্যাপের অন্তর্ভুক্ত নেভিগেশন উপাদানগুলি কীভাবে ব্যবহার করবেন তার জন্য ডকুমেন্টেশন এবং উদাহরণ।
বেস নেভি
.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" href="#" tabindex="-1" aria-disabled="true">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" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
</nav>
উপলব্ধ শৈলী
.nav
মডিফায়ার এবং ইউটিলিটি সহ s উপাদানের শৈলী পরিবর্তন করুন । মিশ্রিত করুন এবং প্রয়োজন হিসাবে মেলে, অথবা আপনার নিজের তৈরি.
অনুভূমিক প্রান্তিককরণ
flexbox ইউটিলিটিগুলির সাথে আপনার nav এর অনুভূমিক প্রান্তিককরণ পরিবর্তন করুন ৷ ডিফল্টরূপে, navগুলি বাম-সারিবদ্ধ, তবে আপনি সহজেই সেগুলিকে কেন্দ্রে বা ডান প্রান্তিককৃতে পরিবর্তন করতে পারেন।
কেন্দ্রীভূত .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" href="#" tabindex="-1" aria-disabled="true">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" href="#" tabindex="-1" aria-disabled="true">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" href="#" tabindex="-1" aria-disabled="true">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" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
</nav>
ট্যাব
উপরে থেকে মৌলিক এনএভি নেয় এবং .nav-tabs
একটি ট্যাবড ইন্টারফেস তৈরি করতে ক্লাস যোগ করে। আমাদের ট্যাব JavaScript প্লাগইন দিয়ে ট্যাবযোগ্য অঞ্চল তৈরি করতে তাদের ব্যবহার করুন ।
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">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" href="#" tabindex="-1" aria-disabled="true">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" href="#" tabindex="-1" aria-disabled="true">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" href="#" tabindex="-1" aria-disabled="true">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" href="#" tabindex="-1" aria-disabled="true">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" href="#" tabindex="-1" aria-disabled="true">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" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
</nav>
অ্যাক্সেসযোগ্যতা সংক্রান্ত
আপনি যদি একটি নেভিগেশন বার প্রদান করতে navs ব্যবহার করেন, তাহলে role="navigation"
এর সবচেয়ে লজিক্যাল প্যারেন্ট কন্টেনারে একটি যোগ করতে ভুলবেন না বা পুরো নেভিগেশনের চারপাশে <ul>
একটি উপাদান মোড়ানো । <nav>
ভূমিকাটিকে <ul>
নিজের সাথে যুক্ত করবেন না, কারণ এটি সহায়ক প্রযুক্তির দ্বারা একটি প্রকৃত তালিকা হিসাবে ঘোষণা করা থেকে বাধা দেবে৷
নোট করুন যে নেভিগেশন বারগুলি, এমনকি যদি দৃশ্যত .nav-tabs
ক্লাসের সাথে ট্যাব হিসাবে স্টাইল করা হয়, দেওয়া উচিত নয়role="tablist"
, role="tab"
বা role="tabpanel"
বৈশিষ্ট্যগুলি দেওয়া উচিত নয়৷ এগুলি শুধুমাত্র ডাইনামিক ট্যাবড ইন্টারফেসের জন্য উপযুক্ত, যেমনটি WAI ARIA অথরিং প্র্যাকটিস -এ বর্ণিত হয়েছে । একটি উদাহরণের জন্য এই বিভাগে ডায়নামিক ট্যাবড ইন্টারফেসের জন্য জাভাস্ক্রিপ্ট আচরণ দেখুন । ডায়নামিক aria-current
ট্যাবড ইন্টারফেসে অ্যাট্রিবিউটটি প্রয়োজনীয় নয় কারণ আমাদের জাভাস্ক্রিপ্ট aria-selected="true"
সক্রিয় ট্যাবে যোগ করে নির্বাচিত অবস্থা পরিচালনা করে।
ড্রপডাউন ব্যবহার করে
একটু অতিরিক্ত 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" href="#" tabindex="-1" aria-disabled="true">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" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
</li>
</ul>
সস
ভেরিয়েবল
$nav-link-padding-y: .5rem;
$nav-link-padding-x: 1rem;
$nav-link-font-size: null;
$nav-link-font-weight: null;
$nav-link-color: $link-color;
$nav-link-hover-color: $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
স্থানীয় বিষয়বস্তুর ট্যাবেবল প্যান তৈরি করতে আমাদের নেভিগেশনাল ট্যাব এবং পিলগুলিকে প্রসারিত করতে ট্যাব JavaScript প্লাগইনটি ব্যবহার করুন—এটি পৃথকভাবে বা সংকলিত ফাইলের মাধ্যমে অন্তর্ভুক্ত করুন ।
ডাইনামিক ট্যাবড ইন্টারফেস, যেমন WAI ARIA অথরিং প্র্যাকটিসসে বর্ণিত হয়েছে , সহায়ক প্রযুক্তির ব্যবহারকারীদের (যেমন স্ক্রিন রিডার) তাদের গঠন, কার্যকারিতা এবং বর্তমান অবস্থা জানাতে role="tablist"
, role="tab"
, role="tabpanel"
, এবং অতিরিক্ত বৈশিষ্ট্যের প্রয়োজন । aria-
একটি সর্বোত্তম অনুশীলন হিসাবে, আমরা <button>
ট্যাবগুলির জন্য উপাদানগুলি ব্যবহার করার পরামর্শ দিই, কারণ এগুলি এমন নিয়ন্ত্রণ যা একটি গতিশীল পরিবর্তনকে ট্রিগার করে, একটি নতুন পৃষ্ঠা বা অবস্থানে নেভিগেট করা লিঙ্কগুলির পরিবর্তে৷
মনে রাখবেন যে ডায়নামিক ট্যাবড ইন্টারফেসে ড্রপডাউন মেনু থাকা উচিত নয় , কারণ এটি ব্যবহারযোগ্যতা এবং অ্যাক্সেসযোগ্যতা উভয়ই সমস্যা সৃষ্টি করে। ব্যবহারযোগ্যতার দৃষ্টিকোণ থেকে, বর্তমানে প্রদর্শিত ট্যাবের ট্রিগার উপাদানটি অবিলম্বে দৃশ্যমান নয় (যেহেতু এটি বন্ধ ড্রপডাউন মেনুতে রয়েছে) বিভ্রান্তির কারণ হতে পারে। একটি অ্যাক্সেসিবিলিটি দৃষ্টিকোণ থেকে, বর্তমানে এই ধরণের নির্মাণকে একটি স্ট্যান্ডার্ড WAI ARIA প্যাটার্নে ম্যাপ করার কোনও বুদ্ধিমান উপায় নেই, যার অর্থ এটি সহায়ক প্রযুক্তির ব্যবহারকারীদের কাছে সহজে বোধগম্য করা যায় না।
এটি হোম ট্যাবের সাথে সম্পর্কিত কিছু স্থানধারক সামগ্রী। অন্য ট্যাবে ক্লিক করলে পরেরটির জন্য এটির দৃশ্যমানতা টগল হবে। ট্যাব জাভাস্ক্রিপ্ট কন্টেন্ট দৃশ্যমানতা এবং স্টাইলিং নিয়ন্ত্রণ করতে ক্লাস অদলবদল করে। আপনি এটি ট্যাব, বড়ি, এবং অন্য কোনো- .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.
<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="contact-tab" data-bs-toggle="tab" data-bs-target="#contact" type="button" role="tab" aria-controls="contact" aria-selected="false">Contact</button>
</li>
</ul>
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">...</div>
<div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">...</div>
<div class="tab-pane fade" id="contact" role="tabpanel" aria-labelledby="contact-tab">...</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>
</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">...</div>
<div class="tab-pane fade" id="nav-profile" role="tabpanel" aria-labelledby="nav-profile-tab">...</div>
<div class="tab-pane fade" id="nav-contact" role="tabpanel" aria-labelledby="nav-contact-tab">...</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.
<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>
</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">...</div>
<div class="tab-pane fade" id="pills-profile" role="tabpanel" aria-labelledby="pills-profile-tab">...</div>
<div class="tab-pane fade" id="pills-contact" role="tabpanel" aria-labelledby="pills-contact-tab">...</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 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-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">...</div>
<div class="tab-pane fade" id="v-pills-profile" role="tabpanel" aria-labelledby="v-pills-profile-tab">...</div>
<div class="tab-pane fade" id="v-pills-messages" role="tabpanel" aria-labelledby="v-pills-messages-tab">...</div>
<div class="tab-pane fade" id="v-pills-settings" role="tabpanel" aria-labelledby="v-pills-settings-tab">...</div>
</div>
</div>
Using data attributes
You can activate a tab or pill navigation without writing any JavaScript by simply specifying data-bs-toggle="tab"
or data-bs-toggle="pill"
on an element. Use these data attributes on .nav-tabs
or .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">...</div>
<div class="tab-pane" id="profile" role="tabpanel" aria-labelledby="profile-tab">...</div>
<div class="tab-pane" id="messages" role="tabpanel" aria-labelledby="messages-tab">...</div>
<div class="tab-pane" id="settings" role="tabpanel" aria-labelledby="settings-tab">...</div>
</div>
Via JavaScript
Enable tabbable tabs via JavaScript (each tab needs to be activated individually):
var triggerTabList = [].slice.call(document.querySelectorAll('#myTab a'))
triggerTabList.forEach(function (triggerEl) {
var tabTrigger = new bootstrap.Tab(triggerEl)
triggerEl.addEventListener('click', function (event) {
event.preventDefault()
tabTrigger.show()
})
})
You can activate individual tabs in several ways:
var triggerEl = document.querySelector('#myTab a[href="#profile"]')
bootstrap.Tab.getInstance(triggerEl).show() // Select tab by name
var triggerFirstTabEl = document.querySelector('#myTab li:first-child a')
bootstrap.Tab.getInstance(triggerFirstTabEl).show() // Select first tab
Fade effect
To make tabs fade in, add .fade
to each .tab-pane
. The first tab pane must also have .show
to make the initial content visible.
<div class="tab-content">
<div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">...</div>
<div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">...</div>
<div class="tab-pane fade" id="messages" role="tabpanel" aria-labelledby="messages-tab">...</div>
<div class="tab-pane fade" id="settings" role="tabpanel" aria-labelledby="settings-tab">...</div>
</div>
Methods
Asynchronous methods and transitions
All API methods are asynchronous and start a transition. They return to the caller as soon as the transition is started but before it ends. In addition, a method call on a transitioning component will be ignored.
constructor
Activates a tab element and content container. Tab should have either a data-bs-target
or, if using a link, an href
attribute, targeting a container node in the DOM.
<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>
<div class="tab-content">
<div class="tab-pane active" id="home" role="tabpanel" aria-labelledby="home-tab">...</div>
<div class="tab-pane" id="profile" role="tabpanel" aria-labelledby="profile-tab">...</div>
<div class="tab-pane" id="messages" role="tabpanel" aria-labelledby="messages-tab">...</div>
<div class="tab-pane" id="settings" role="tabpanel" aria-labelledby="settings-tab">...</div>
</div>
<script>
var firstTabEl = document.querySelector('#myTab li:last-child a')
var firstTab = new bootstrap.Tab(firstTabEl)
firstTab.show()
</script>
show
Selects the given tab and shows its associated pane. Any other tab that was previously selected becomes unselected and its associated pane is hidden. Returns to the caller before the tab pane has actually been shown (i.e. before the shown.bs.tab
event occurs).
var someTabTriggerEl = document.querySelector('#someTabTrigger')
var tab = new bootstrap.Tab(someTabTriggerEl)
tab.show()
dispose
Destroys an element’s tab.
getInstance
Static method which allows you to get the tab instance associated with a DOM element
var triggerEl = document.querySelector('#trigger')
var tab = bootstrap.Tab.getInstance(triggerEl) // Returns a Bootstrap tab instance
getOrCreateInstance
Static method which allows you to get the tab instance associated with a DOM element, or create a new one in case it wasn’t initialised
var triggerEl = document.querySelector('#trigger')
var tab = bootstrap.Tab.getOrCreateInstance(triggerEl) // Returns a Bootstrap tab instance
Events
When showing a new tab, the events fire in the following order:
hide.bs.tab
(on the current active tab)show.bs.tab
(on the to-be-shown tab)hidden.bs.tab
(on the previous active tab, the same one as for thehide.bs.tab
event)shown.bs.tab
(on the newly-active just-shown tab, the same one as for theshow.bs.tab
event)
If no tab was already active, then the hide.bs.tab
and hidden.bs.tab
events will not be fired.
Event type | Description |
---|---|
show.bs.tab |
This event fires on tab show, but before the new tab has been shown. Use event.target and event.relatedTarget to target the active tab and the previous active tab (if available) respectively. |
shown.bs.tab |
This event fires on tab show after a tab has been shown. Use event.target and event.relatedTarget to target the active tab and the previous active tab (if available) respectively. |
hide.bs.tab |
This event fires when a new tab is to be shown (and thus the previous active tab is to be hidden). Use event.target and event.relatedTarget to target the current active tab and the new soon-to-be-active tab, respectively. |
hidden.bs.tab |
একটি নতুন ট্যাব দেখানোর পরে এই ইভেন্টটি চালু হয় (এবং এইভাবে আগের সক্রিয় ট্যাবটি লুকানো হয়)। যথাক্রমে পূর্ববর্তী সক্রিয় ট্যাব এবং নতুন সক্রিয় ট্যাব ব্যবহার করুন event.target এবং লক্ষ্য করুন।event.relatedTarget |
var tabEl = document.querySelector('button[data-bs-toggle="tab"]')
tabEl.addEventListener('shown.bs.tab', function (event) {
event.target // newly activated tab
event.relatedTarget // previous active tab
})