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">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 ইউটিলিটিগুলির সাথে আপনার 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">Disabled</a>
</li>
</ul>
এর সাথে ডান-সারিবদ্ধ .justify-content-end
:
<ul class="nav justify-content-end">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled">Disabled</a>
</li>
</ul>
উল্লম্ব
.flex-column
ইউটিলিটির সাথে ফ্লেক্স আইটেমের দিক পরিবর্তন করে আপনার নেভিগেশন স্ট্যাক করুন । কিছু ভিউপোর্টে তাদের স্ট্যাক করা দরকার কিন্তু অন্যদের নয়? প্রতিক্রিয়াশীল সংস্করণ ব্যবহার করুন (যেমন, .flex-sm-column
)।
<ul class="nav flex-column">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled">Disabled</a>
</li>
</ul>
<ul>
বরাবরের মতো, s ছাড়া উল্লম্ব নেভিগেশনও সম্ভব ।
<nav class="nav flex-column">
<a class="nav-link active" aria-current="page" href="#">Active</a>
<a class="nav-link" href="#">Link</a>
<a class="nav-link" href="#">Link</a>
<a class="nav-link disabled">Disabled</a>
</nav>
ট্যাব
উপরে থেকে মৌলিক এনএভি নেয় এবং .nav-tabs
একটি ট্যাবড ইন্টারফেস তৈরি করতে ক্লাস যোগ করে। আমাদের ট্যাব JavaScript প্লাগইন দিয়ে ট্যাবযোগ্য অঞ্চল তৈরি করতে তাদের ব্যবহার করুন ।
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled">Disabled</a>
</li>
</ul>
বড়ি
একই HTML নিন, কিন্তু .nav-pills
পরিবর্তে ব্যবহার করুন:
<ul class="nav nav-pills">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled">Disabled</a>
</li>
</ul>
পূরণ এবং ন্যায্যতা
আপনার .nav
বিষয়বস্তু দুটি সংশোধক শ্রেণীর একটি সম্পূর্ণ উপলব্ধ প্রস্থ প্রসারিত করতে বাধ্য করুন। আপনার .nav-item
s দিয়ে আনুপাতিকভাবে সমস্ত উপলব্ধ স্থান পূরণ করতে, ব্যবহার করুন .nav-fill
। লক্ষ্য করুন যে সমস্ত অনুভূমিক স্থান দখল করা হয়েছে, কিন্তু প্রতিটি নেভি আইটেমের প্রস্থ একই নয়।
<ul class="nav nav-pills nav-fill">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Much longer nav link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled">Disabled</a>
</li>
</ul>
একটি <nav>
-ভিত্তিক নেভিগেশন ব্যবহার করার সময়, আপনি নিরাপদে বাদ দিতে পারেন .nav-item
কারণ শুধুমাত্র স্টাইলিং উপাদানগুলির .nav-link
জন্য প্রয়োজনীয় ।<a>
<nav class="nav nav-pills nav-fill">
<a class="nav-link active" aria-current="page" href="#">Active</a>
<a class="nav-link" href="#">Much longer nav link</a>
<a class="nav-link" href="#">Link</a>
<a class="nav-link disabled">Disabled</a>
</nav>
সমান-প্রস্থ উপাদানগুলির জন্য, ব্যবহার করুন .nav-justified
। সমস্ত অনুভূমিক স্থান নেভি লিঙ্ক দ্বারা দখল করা হবে, কিন্তু .nav-fill
উপরের থেকে ভিন্ন, প্রতিটি নেভি আইটেম একই প্রস্থ হবে।
<ul class="nav nav-pills nav-justified">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Much longer nav link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled">Disabled</a>
</li>
</ul>
একটি- ভিত্তিক নেভিগেশন .nav-fill
ব্যবহার করে উদাহরণের অনুরূপ ।<nav>
<nav class="nav nav-pills nav-justified">
<a class="nav-link active" aria-current="page" href="#">Active</a>
<a class="nav-link" href="#">Much longer nav link</a>
<a class="nav-link" href="#">Link</a>
<a class="nav-link disabled">Disabled</a>
</nav>
ফ্লেক্স ইউটিলিটিগুলির সাথে কাজ করা
আপনার যদি প্রতিক্রিয়াশীল নেভি ভ্যারিয়েশনের প্রয়োজন হয়, তাহলে ফ্লেক্সবক্স ইউটিলিটিগুলির একটি সিরিজ ব্যবহার করার কথা বিবেচনা করুন । যদিও আরও ভার্বস, এই ইউটিলিটিগুলি প্রতিক্রিয়াশীল ব্রেকপয়েন্ট জুড়ে আরও বেশি কাস্টমাইজেশন অফার করে। নীচের উদাহরণে, আমাদের নেভিটি সর্বনিম্ন ব্রেকপয়েন্টে স্ট্যাক করা হবে, তারপরে একটি অনুভূমিক বিন্যাসে মানিয়ে নিন যা ছোট ব্রেকপয়েন্ট থেকে শুরু করে উপলব্ধ প্রস্থ পূরণ করে।
<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 ব্যবহার করেন, তাহলে role="navigation"
এর সবচেয়ে লজিক্যাল প্যারেন্ট কন্টেনারে একটি যোগ করতে ভুলবেন না বা পুরো নেভিগেশনের চারপাশে <ul>
একটি উপাদান মোড়ানো । <nav>
ভূমিকাটিকে <ul>
নিজের সাথে যুক্ত করবেন না, কারণ এটি সহায়ক প্রযুক্তির দ্বারা একটি প্রকৃত তালিকা হিসাবে ঘোষণা করা থেকে বাধা দেবে৷
নোট করুন যে নেভিগেশন বারগুলি, এমনকি যদি দৃশ্যত .nav-tabs
ক্লাসের সাথে ট্যাব হিসাবে স্টাইল করা হয়, দেওয়া উচিত নয়role="tablist"
, role="tab"
বা role="tabpanel"
বৈশিষ্ট্যগুলি দেওয়া উচিত নয়৷ এগুলি শুধুমাত্র ডায়নামিক ট্যাবড ইন্টারফেসের জন্য উপযুক্ত, যেমনটি 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">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 এ যোগ করা হয়েছেবুটস্ট্র্যাপের বিকশিত CSS ভেরিয়েবল পদ্ধতির অংশ হিসাবে, navs এখন .nav
, .nav-tabs
, এবং .nav-pills
উন্নত রিয়েল-টাইম কাস্টমাইজেশনের জন্য স্থানীয় CSS ভেরিয়েবল ব্যবহার করে। 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;
জাভাস্ক্রিপ্ট আচরণ
bootstrap.js
স্থানীয় বিষয়বস্তুর ট্যাবেবল প্যান তৈরি করতে আমাদের নেভিগেশনাল ট্যাব এবং পিলগুলিকে প্রসারিত করতে ট্যাব JavaScript প্লাগইনটি ব্যবহার করুন—এটি পৃথকভাবে বা সংকলিত ফাইলের মাধ্যমে অন্তর্ভুক্ত করুন ।
এটি হোম ট্যাবের সাথে সম্পর্কিত কিছু স্থানধারক সামগ্রী। অন্য ট্যাবে ক্লিক করলে পরেরটির জন্য এটির দৃশ্যমানতা টগল হবে। ট্যাব জাভাস্ক্রিপ্ট কন্টেন্ট দৃশ্যমানতা এবং স্টাইলিং নিয়ন্ত্রণ করতে ক্লাস অদলবদল করে। আপনি এটি ট্যাব, বড়ি, এবং অন্য কোনো- .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"
, কারণ এটি একটি নেভিগেশন ল্যান্ডমার্ক হিসাবে উপাদানটির নেটিভ ভূমিকাকে ওভাররাইড করবে৷ পরিবর্তে, একটি বিকল্প উপাদানে স্যুইচ করুন (নীচের উদাহরণে, একটি সাধারণ <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 Authoring Practices প্যাটার্নের সাথে সামঞ্জস্য রেখে, শুধুমাত্র বর্তমানে সক্রিয় ট্যাবটি কীবোর্ড ফোকাস পায়। জাভাস্ক্রিপ্ট প্লাগইন শুরু হলে, এটি tabindex="-1"
সমস্ত নিষ্ক্রিয় ট্যাব নিয়ন্ত্রণে সেট করবে। বর্তমানে সক্রিয় ট্যাবে ফোকাস হয়ে গেলে, কার্সার কীগুলি পূর্ববর্তী/পরবর্তী ট্যাবটিকে সক্রিয় করে, প্লাগইনটি সেই অনুযায়ী রোভিংtabindex
পরিবর্তন করে । যাইহোক, নোট করুন যে জাভাস্ক্রিপ্ট প্লাগইনটি কার্সার কী ইন্টারঅ্যাকশনের ক্ষেত্রে অনুভূমিক এবং উল্লম্ব ট্যাব তালিকার মধ্যে পার্থক্য করে না: ট্যাব তালিকার অভিযোজন নির্বিশেষে, উপরের এবং বাম উভয় কার্সার পূর্ববর্তী ট্যাবে যায় এবং নীচে এবং ডান কার্সারে যায় পরবর্তী ট্যাব।
tabindex="0"
আপনার মার্কআপ যোগ করে স্পষ্টভাবে আপনার ট্যাব প্যানেলগুলিকে ফোকাসযোগ্য করে তুলতে হবে।
ডেটা বৈশিষ্ট্য ব্যবহার করে
আপনি একটি ট্যাব বা পিল নেভিগেশন সক্রিয় করতে পারেন কোনো জাভাস্ক্রিপ্ট না লিখে শুধুমাত্র নির্দিষ্ট করে 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>
পদ্ধতি
অ্যাসিঙ্ক্রোনাস পদ্ধতি এবং রূপান্তর
সমস্ত API পদ্ধতি অসিঙ্ক্রোনাস এবং একটি রূপান্তর শুরু করে । রূপান্তর শুরু হওয়ার সাথে সাথেই কিন্তু এটি শেষ হওয়ার আগেই তারা কলারের কাছে ফিরে আসে । উপরন্তু, একটি রূপান্তরকারী উপাদানের উপর একটি পদ্ধতি কল উপেক্ষা করা হবে ।
একটি ট্যাব উপাদান হিসাবে আপনার বিষয়বস্তু সক্রিয়.
আপনি কনস্ট্রাক্টরের সাথে একটি ট্যাব উদাহরণ তৈরি করতে পারেন, উদাহরণস্বরূপ:
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
})