Navs ແລະແຖບ
ເອກະສານແລະຕົວຢ່າງສໍາລັບວິທີການນໍາໃຊ້ອົງປະກອບນໍາທາງລວມຂອງ Bootstrap.
ພື້ນຖານ nav
ການນໍາທາງທີ່ມີຢູ່ໃນ Bootstrap ແບ່ງປັນເຄື່ອງຫມາຍແລະຮູບແບບທົ່ວໄປ, ຈາກຊັ້ນພື້ນຖານ .nav
ໄປສູ່ສະຖານະທີ່ເຮັດວຽກແລະຄົນພິການ. Swap modifier classes ເພື່ອສະຫຼັບລະຫວ່າງແຕ່ລະຮູບແບບ.
ອົງປະກອບ ພື້ນຖານ .nav
ແມ່ນສ້າງດ້ວຍ flexbox ແລະສ້າງພື້ນຖານທີ່ເຂັ້ມແຂງສໍາລັບການກໍ່ສ້າງອົງປະກອບນໍາທາງທຸກປະເພດ. ມັນປະກອບມີການ overrides ບາງຮູບແບບ (ສໍາລັບການເຮັດວຽກກັບລາຍການ), ບາງ padding ເຊື່ອມຕໍ່ສໍາລັບພື້ນທີ່ hit ຂະຫນາດໃຫຍ່, ແລະຄໍເຕົ້າໄຂ່ທີ່ພິການພື້ນຖານ.
ອົງປະກອບ ພື້ນຖານ .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 ປະຕິບັດຄືກັນກັບລາຍການ nav ຈະ, ແຕ່ບໍ່ມີເຄື່ອງຫມາຍພິເສດ.
<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
ອົງປະກອບທີ່ມີຕົວປັບປ່ຽນແລະຜົນປະໂຫຍດ. ປະສົມແລະຈັບຄູ່ຕາມຄວາມຕ້ອງການ, ຫຼືສ້າງຂອງທ່ານເອງ.
ການຈັດວາງແນວນອນ
ປ່ຽນການຈັດວາງແນວນອນຂອງ nav ຂອງທ່ານດ້ວຍ flexbox utilities . ໂດຍຄ່າເລີ່ມຕົ້ນ, navs ແມ່ນຈັດຮຽງຊ້າຍ, ແຕ່ທ່ານສາມາດປ່ຽນພວກມັນໃຫ້ເປັນການຈັດວາງທາງກາງ ຫຼື ຂວາໄດ້ຢ່າງງ່າຍດາຍ.
ຢູ່ໃຈກາງດ້ວຍ .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 ກັບ .flex-column
ຜົນປະໂຫຍດ. ຕ້ອງການ stack ພວກມັນຢູ່ໃນບາງ viewports ແຕ່ບໍ່ແມ່ນບ່ອນອື່ນບໍ? ໃຊ້ສະບັບທີ່ຕອບສະຫນອງ (ເຊັ່ນ, .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>
ແຖບ
ເອົາ navigation ພື້ນຖານຈາກຂ້າງເທິງແລະເພີ່ມ .nav-tabs
ຫ້ອງຮຽນເພື່ອສ້າງການໂຕ້ຕອບແບບແທັບ. ໃຊ້ພວກມັນເພື່ອສ້າງພື້ນທີ່ທີ່ສາມາດ tabbable ໄດ້ດ້ວຍ ແທັບ JavaScript plugin ຂອງພວກເຮົາ .
<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>
ຕື່ມຂໍ້ມູນໃສ່ແລະ justify
ບັງຄັບ .nav
ໃຫ້ເນື້ອໃນຂອງທ່ານຂະຫຍາຍຄວາມກວ້າງເຕັມທີ່ຫນຶ່ງຂອງສອງຫ້ອງຮຽນຕົວແກ້ໄຂ. ເພື່ອຕື່ມຂໍ້ມູນໃສ່ພື້ນທີ່ທີ່ມີຢູ່ທັງໝົດດ້ວຍສັດສ່ວນຂອງທ່ານ .nav-item
, ໃຫ້ໃຊ້ .nav-fill
. ສັງເກດເຫັນວ່າພື້ນທີ່ລວງນອນທັງໝົດຖືກຄອບຄອງ, ແຕ່ບໍ່ແມ່ນທຸກລາຍການ nav ທີ່ມີຄວາມກວ້າງຄືກັນ.
<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>
ທາງ -based, ທ່ານສາມາດຍົກເລີກໄດ້ຢ່າງປອດໄພ .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, ແຕ່ບໍ່ຄືກັບ .nav-fill
ຂ້າງເທິງ, ທຸກລາຍການ nav ຈະມີຄວາມກວ້າງຄືກັນ.
<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>
ນໍາທາງ -based.
<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>
ເຮັດວຽກກັບ flex utilities
ຖ້າທ່ານຕ້ອງການການປ່ຽນແປງ naval ທີ່ຕອບສະຫນອງ, ພິຈາລະນານໍາໃຊ້ຊຸດຂອງ flexbox utilities . ໃນຂະນະທີ່ verbose ຫຼາຍ, ຜົນປະໂຫຍດເຫຼົ່ານີ້ສະຫນອງການປັບແຕ່ງຫຼາຍກວ່າເກົ່າໃນທົ່ວ breakpoints ຕອບສະຫນອງ. ໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້, nav ຂອງພວກເຮົາຈະຖືກ stacked ສຸດ breakpoint ຕ່ໍາສຸດ, ຫຼັງຈາກນັ້ນປັບເປັນຮູບແບບອອກຕາມລວງນອນທີ່ຕື່ມຄວາມກວ້າງທີ່ມີຢູ່ເລີ່ມຕົ້ນຈາກ breakpoint ຂະຫນາດນ້ອຍ.
<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"
ລັກສະນະຕ່າງໆ. ເຫຼົ່ານີ້ແມ່ນເຫມາະສົມສໍາລັບການໂຕ້ຕອບແຖບແບບເຄື່ອນໄຫວເທົ່ານັ້ນ, ດັ່ງທີ່ອະທິບາຍໄວ້ໃນ WAI ARIA Authoring Practices . ເບິ່ງ ພຶດຕິກໍາຂອງ JavaScript ສໍາລັບການໂຕ້ຕອບແຖບແບບເຄື່ອນໄຫວຢູ່ໃນພາກນີ້ສໍາລັບຕົວຢ່າງ. ຄຸນລັກ ສະ aria-current
ນະແມ່ນບໍ່ຈໍາເປັນໃນການໂຕ້ຕອບແຖບແບບເຄື່ອນໄຫວນັບຕັ້ງແຕ່ JavaScript ຂອງພວກເຮົາຈັດການກັບສະຖານະທີ່ເລືອກໂດຍການເພີ່ມ aria-selected="true"
ໃສ່ແຖບທີ່ໃຊ້ວຽກ.
ການນໍາໃຊ້ແບບເລື່ອນລົງ
ເພີ່ມເມນູແບບເລື່ອນລົງດ້ວຍ HTML ເພີ່ມເຕີມເລັກນ້ອຍແລະ plugin 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>
ຊາສ
ຕົວແປ
$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;
ພຶດຕິກໍາ JavaScript
ໃຊ້ແທັບແທໍບ JavaScript - ລວມທັງມັນສ່ວນບຸກຄົນຫຼືຜ່ານ bootstrap.js
ໄຟລ໌ທີ່ລວບລວມ - ເພື່ອຂະຫຍາຍແຖບນໍາທາງແລະຢາຂອງພວກເຮົາເພື່ອສ້າງແຖບຕາຕະລາງຂອງເນື້ອຫາທ້ອງຖິ່ນ.
ການໂຕ້ຕອບແບບແທັບແທັບແບບໄດນາມິກ, ດັ່ງທີ່ອະທິບາຍໄວ້ໃນ WAI ARIA Authoring Practices , ຕ້ອງ ການ role="tablist"
, role="tab"
, role="tabpanel"
, ແລະ aria-
ຄຸນສົມບັດເພີ່ມເຕີມເພື່ອຖ່າຍທອດໂຄງສ້າງ, ການເຮັດວຽກ ແລະສະຖານະປັດຈຸບັນໃຫ້ກັບຜູ້ໃຊ້ເທັກໂນໂລຍີຊ່ວຍເຫຼືອ (ເຊັ່ນ: ເຄື່ອງອ່ານໜ້າຈໍ). ເປັນການປະຕິບັດທີ່ດີທີ່ສຸດ, ພວກເຮົາແນະນໍາໃຫ້ໃຊ້ <button>
ອົງປະກອບສໍາລັບແຖບ, ຍ້ອນວ່າເຫຼົ່ານີ້ແມ່ນການຄວບຄຸມທີ່ເຮັດໃຫ້ເກີດການປ່ຽນແປງແບບເຄື່ອນໄຫວ, ແທນທີ່ຈະເປັນການເຊື່ອມຕໍ່ທີ່ນໍາທາງໄປຫາຫນ້າຫຼືສະຖານທີ່ໃຫມ່.
ກະລຸນາ ຮັບຊາບວ່າອິນເຕີເຟດແຖບແບບໄດນາມິກບໍ່ຄວນ ມີ ເມນູແບບເລື່ອນລົງ, ເພາະວ່ານີ້ເຮັດໃຫ້ເກີດບັນຫາທັງຄວາມສາມາດໃນການໃຊ້ງານ ແລະການເຂົ້າເຖິງ. ຈາກທັດສະນະທີ່ສາມາດນໍາໃຊ້ໄດ້, ຄວາມຈິງທີ່ວ່າອົງປະກອບ trigger ຂອງແຖບທີ່ສະແດງໃນປັດຈຸບັນແມ່ນບໍ່ເຫັນໄດ້ທັນທີ (ຍ້ອນວ່າມັນຢູ່ໃນເມນູເລື່ອນລົງທີ່ປິດ) ສາມາດເຮັດໃຫ້ເກີດຄວາມສັບສົນ. ຈາກທັດສະນະຂອງການເຂົ້າເຖິງ, ປະຈຸບັນບໍ່ມີວິທີການທີ່ສົມເຫດສົມຜົນທີ່ຈະສ້າງການຈັດລຽງນີ້ໄປສູ່ຮູບແບບ WAI ARIA ມາດຕະຖານ, ຊຶ່ງຫມາຍຄວາມວ່າມັນບໍ່ສາມາດເຂົ້າໃຈໄດ້ງ່າຍສໍາລັບຜູ້ໃຊ້ເຕັກໂນໂລຢີການຊ່ວຍເຫຼືອ.
ນີ້ແມ່ນບາງເນື້ອໃນຕົວຍຶດຂອງເນື້ອຫາທີ່ກ່ຽວຂ້ອງຂອງແຖບຫນ້າທໍາອິດ. ການຄລິກແຖບອື່ນຈະສະຫຼັບການເບິ່ງເຫັນອັນນີ້ຕໍ່ໄປ. ແຖບ JavaScript ແລກປ່ຽນບົດຮຽນເພື່ອຄວບຄຸມການເບິ່ງເຫັນເນື້ອຫາ ແລະການຈັດຮູບແບບ. ທ່ານສາມາດນໍາໃຊ້ມັນກັບແຖບ, ຢາຄຸມກໍາເນີດ, ແລະອື່ນໆ .nav
-powered ນໍາທິດ.
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>
-based markup, ດັ່ງທີ່ສະແດງຂ້າງເທິງ, ຫຼືກັບຕົວຕົນ "roll your own" markup. ໃຫ້ສັງເກດວ່າຖ້າທ່ານໃຊ້ <nav>
, ທ່ານບໍ່ຄວນເພີ່ມ role="tablist"
ໂດຍກົງໃສ່ມັນ, ເພາະວ່ານີ້ຈະ override ບົດບາດພື້ນເມືອງຂອງອົງປະກອບທີ່ເປັນຈຸດຫມາຍປາຍທາງນໍາທາງ. ແທນທີ່ຈະ, ປ່ຽນເປັນອົງປະກອບທາງເລືອກ (ໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້, ແບບງ່າຍດາຍ <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>
ແຖບ plugin ຍັງເຮັດວຽກກັບຢາເມັດ.
ນີ້ແມ່ນບາງເນື້ອໃນຕົວຍຶດຂອງເນື້ອຫາທີ່ກ່ຽວຂ້ອງຂອງແຖບຫນ້າທໍາອິດ. ການຄລິກແຖບອື່ນຈະສະຫຼັບການເບິ່ງເຫັນອັນນີ້ຕໍ່ໄປ. ແຖບ JavaScript ແລກປ່ຽນບົດຮຽນເພື່ອຄວບຄຸມການເບິ່ງເຫັນເນື້ອຫາ ແລະການຈັດຮູບແບບ. ທ່ານສາມາດນໍາໃຊ້ມັນກັບແຖບ, ຢາຄຸມກໍາເນີດ, ແລະອື່ນໆ .nav
-powered ນໍາທິດ.
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>
ແລະດ້ວຍຢາເມັດຕັ້ງ.
ນີ້ແມ່ນບາງເນື້ອໃນຕົວຍຶດຂອງເນື້ອຫາທີ່ກ່ຽວຂ້ອງຂອງແຖບຫນ້າທໍາອິດ. ການຄລິກແຖບອື່ນຈະສະຫຼັບການເບິ່ງເຫັນອັນນີ້ຕໍ່ໄປ. ແຖບ JavaScript ແລກປ່ຽນບົດຮຽນເພື່ອຄວບຄຸມການເບິ່ງເຫັນເນື້ອຫາ ແລະການຈັດຮູບແບບ. ທ່ານສາມາດນໍາໃຊ້ມັນກັບແຖບ, ຢາຄຸມກໍາເນີດ, ແລະອື່ນໆ .nav
-powered ນໍາທິດ.
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>
ການນໍາໃຊ້ຄຸນລັກສະນະຂໍ້ມູນ
ທ່ານສາມາດກະຕຸ້ນການນໍາທາງແຖບຫຼືຢາໂດຍບໍ່ມີການຂຽນ 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">...</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>
ຜ່ານ JavaScript
ເປີດໃຊ້ແທັບທີ່ສາມາດເປີດໄດ້ຜ່ານ JavaScript (ແຕ່ລະແທັບຕ້ອງຖືກເປີດໃຊ້ເປັນແຕ່ລະອັນ):
var triggerTabList = [].slice.call(document.querySelectorAll('#myTab button'))
triggerTabList.forEach(function (triggerEl) {
var tabTrigger = new bootstrap.Tab(triggerEl)
triggerEl.addEventListener('click', function (event) {
event.preventDefault()
tabTrigger.show()
})
})
ທ່ານສາມາດເປີດໃຊ້ແທັບສ່ວນບຸກຄົນໄດ້ຫຼາຍວິທີ:
var triggerEl = document.querySelector('#myTab button[data-bs-target="#profile"]')
bootstrap.Tab.getInstance(triggerEl).show() // Select tab by name
var 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">...</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>
ວິທີການ
ວິທີການ asynchronous ແລະການຫັນປ່ຽນ
ວິທີການ API ທັງໝົດແມ່ນ asynchronous ແລະເລີ່ມການ ຫັນປ່ຽນ . ພວກເຂົາກັບຄືນໄປຫາຜູ້ໂທທັນທີທີ່ການຫັນປ່ຽນເລີ່ມຕົ້ນແຕ່ ກ່ອນທີ່ມັນຈ��ສິ້ນສຸດລົງ . ນອກຈາກນັ້ນ, ການໂທຫາວິທີການກ່ຽວກັບ ອົງປະກອບຂອງການປ່ຽນແປງຈະຖືກລະເລີຍ .
constructor
ເປີດໃຊ້ອົງປະກອບແຖບ ແລະຕົວບັນຈຸເນື້ອຫາ. ແຖບຄວນຈະມີ data-bs-target
ຫຼື, ຖ້າໃຊ້ການເຊື່ອມຕໍ່, href
ຄຸນລັກສະນະ, ກໍານົດເປົ້າຫມາຍ node container ໃນ 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 button')
var firstTab = new bootstrap.Tab(firstTabEl)
firstTab.show()
</script>
show
ເລືອກແຖບທີ່ໃຫ້ມາ ແລະສະແດງແຖບທີ່ກ່ຽວຂ້ອງຂອງມັນ. ແຖບອື່ນໃດກໍໄດ້ທີ່ເລືອກໄວ້ກ່ອນໜ້ານີ້ຈະກາຍເປັນທີ່ບໍ່ເລືອກ ແລະແຖບທີ່ກ່ຽວຂ້ອງຂອງມັນຖືກເຊື່ອງໄວ້. ກັບຄືນໄປຫາຜູ້ໂທກ່ອນທີ່ແຖບແຖບໄດ້ຖືກສະແດງໃຫ້ເຫັນຕົວຈິງ (ເຊັ່ນ: ກ່ອນທີ່ shown.bs.tab
ເຫດການຈະເກີດຂື້ນ).
var someTabTriggerEl = document.querySelector('#someTabTrigger')
var tab = new bootstrap.Tab(someTabTriggerEl)
tab.show()
dispose
ທໍາລາຍແຖບຂອງອົງປະກອບ.
getInstance
ວິທີການ ຄົງ ທີ່ທີ່ອະນຸຍາດໃຫ້ທ່ານໄດ້ຮັບຕົວຢ່າງແຖບທີ່ກ່ຽວຂ້ອງກັບອົງປະກອບ DOM
var triggerEl = document.querySelector('#trigger')
var tab = bootstrap.Tab.getInstance(triggerEl) // Returns a Bootstrap tab instance
getOrCreateInstance
ວິທີການ ຄົງ ທີ່ທີ່ອະນຸຍາດໃຫ້ທ່ານໄດ້ຮັບຕົວຢ່າງແຖບທີ່ກ່ຽວຂ້ອງກັບອົງປະກອບ DOM, ຫຼືສ້າງອັນໃຫມ່ໃນກໍລະນີທີ່ມັນບໍ່ໄດ້ຖືກເລີ່ມຕົ້ນ.
var triggerEl = document.querySelector('#trigger')
var tab = bootstrap.Tab.getOrCreateInstance(triggerEl) // Returns a Bootstrap tab instance
Events
ເມື່ອສະແດງແຖບໃໝ່, ເຫດການຈະເກີດຂຶ້ນຕາມລຳດັບຕໍ່ໄປນີ້:
hide.bs.tab
(ຢູ່ໃນແຖບທີ່ໃຊ້ງານໃນປັດຈຸບັນ)show.bs.tab
(ຢູ່ໃນແຖບທີ່ຈະຖືກສະແດງ)hidden.bs.tab
(ໃນແຖບທີ່ໃຊ້ງານຜ່ານມາ, ອັນດຽວກັນກັບhide.bs.tab
ເຫດການ)shown.bs.tab
(ຢູ່ໃນແຖບທີ່ຫາກໍສະແດງໃໝ່ທີ່ເປີດໃໝ່, ອັນດຽວກັນກັບshow.bs.tab
ເຫດການ)
ຖ້າບໍ່ມີແຖບໃດຖືກເປີດໃຊ້ຢູ່ກ່ອນແລ້ວ, ເຫດການ hide.bs.tab
ແລະ hidden.bs.tab
ເຫດການຈະບໍ່ຖືກຍິງອອກ.
ປະເພດເຫດການ | ລາຍລະອຽດ |
---|---|
show.bs.tab |
ເຫດການນີ້ເລີ່ມເປີດໃນການສະແດງແຖບ, ແຕ່ກ່ອນທີ່ແຖບໃໝ່ຈະຖືກສະແດງ. ໃຊ້ event.target ແລະ event.relatedTarget ເພື່ອເປົ້າຫມາຍແຖບທີ່ໃຊ້ວຽກແລະແຖບທີ່ໃຊ້ໄດ້ກ່ອນຫນ້ານີ້ (ຖ້າມີ) ຕາມລໍາດັບ. |
shown.bs.tab |
ເຫດການນີ້ຈະເລີ່ມສະແດງໃນແຖບສະແດງຫຼັງຈາກແຖບຖືກສະແດງ. ໃຊ້ event.target ແລະ event.relatedTarget ເພື່ອເປົ້າຫມາຍແຖບທີ່ໃຊ້ວຽກແລະແຖບທີ່ໃຊ້ໄດ້ກ່ອນຫນ້ານີ້ (ຖ້າມີ) ຕາມລໍາດັບ. |
hide.bs.tab |
ເຫດການນີ້ຈະດັບໄຟເມື່ອແຖບໃໝ່ຈະຖືກສະແດງ (ແລະດັ່ງນັ້ນແຖບທີ່ເປີດໃຊ້ກ່ອນໜ້າຈະຖືກເຊື່ອງໄວ້). ໃຊ້ event.target ແລະ event.relatedTarget ເພື່ອແນເປົ້າໃສ່ແຖບທີ່ໃຊ້ງານໃນປັດຈຸບັນ ແລະແຖບໃໝ່ທີ່ກຳລັງຈະເປີດໃຊ້ໃນໄວໆນີ້, ຕາມລໍາດັບ. |
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
})