Source

Navs

เอกสารประกอบและตัวอย่างสำหรับวิธีใช้ส่วนประกอบการนำทางที่รวมอยู่ใน Bootstrap

ระบบนำทางฐาน

การนำทางที่มีอยู่ใน Bootstrap จะแบ่งปันมาร์กอัปและสไตล์ทั่วไป ตั้งแต่.navคลาสพื้นฐานไปจนถึงสถานะใช้งานและปิดใช้งาน สลับคลาสตัวดัดแปลงเพื่อสลับไปมาระหว่างแต่ละสไตล์

ส่วนประกอบ พื้นฐาน.navสร้างขึ้นด้วย flexbox และเป็นรากฐานที่แข็งแกร่งสำหรับการสร้างส่วนประกอบการนำทางทุกประเภท ประกอบด้วยการแทนที่รูปแบบบางส่วน (สำหรับการทำงานกับรายการ) ช่องว่างภายในลิงก์บางส่วนสำหรับพื้นที่ Hit ที่ใหญ่ขึ้น และรูปแบบการปิดใช้งานขั้นพื้นฐาน

ส่วนประกอบ พื้นฐาน.navไม่มี.activeสถานะ ใดๆ ตัวอย่างต่อไปนี้รวมถึงคลาส ส่วนใหญ่เพื่อแสดงให้เห็นว่าคลาสนี้ไม่ทริกเกอร์สไตล์พิเศษใดๆ

<ul class="nav">
  <li class="nav-item">
    <a class="nav-link active" 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 จึงทำงานเหมือนกับรายการ nav แต่ไม่มีมาร์กอัปเพิ่มเติม

<nav class="nav">
  <a class="nav-link active" 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องค์ประกอบด้วยตัวปรับแต่งและยูทิลิตี้ มิกซ์แอนด์แมทช์ได้ตามต้องการ หรือสร้างเองก็ได้

การจัดตำแหน่งแนวนอน

เปลี่ยนการจัดตำแหน่งแนวนอนของการนำทางด้วย ยูทิลิ ตี้flexbox ตามค่าเริ่มต้น navs จะจัดชิดซ้าย แต่คุณสามารถเปลี่ยนให้จัดกึ่งกลางหรือจัดชิดขวาได้อย่างง่ายดาย

ศูนย์กลางด้วย.justify-content-center:

<ul class="nav justify-content-center">
  <li class="nav-item">
    <a class="nav-link active" 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" 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" 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" 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" 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" 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ใช้.nav-fill. สังเกตว่าพื้นที่แนวนอนทั้งหมดถูกครอบครอง แต่ไม่ใช่ทุกรายการนำทางที่มีความกว้างเท่ากัน

<ul class="nav nav-pills nav-fill">
  <li class="nav-item">
    <a class="nav-link active" 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 class="nav nav-pills nav-fill">
  <a class="nav-item nav-link active" href="#">Active</a>
  <a class="nav-item nav-link" href="#">Much longer nav link</a>
  <a class="nav-item nav-link" href="#">Link</a>
  <a class="nav-item 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" 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-itemจุดยึดไว้

<nav class="nav nav-pills nav-justified">
  <a class="nav-item nav-link active" href="#">Active</a>
  <a class="nav-item nav-link" href="#">Much longer nav link</a>
  <a class="nav-item nav-link" href="#">Link</a>
  <a class="nav-item nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
</nav>

การทำงานกับยูทิลิตีแบบยืดหยุ่น

หากคุณต้องการรูปแบบการนำทางที่ตอบสนอง ให้ลองใช้ชุด ยูทิลิ ตี้flexbox ในขณะที่ละเอียดมากขึ้น ยูทิลิตีเหล่านี้ให้การปรับแต่งที่ดีขึ้นในจุดสั่งหยุดที่ตอบสนอง ในตัวอย่างด้านล่าง การนำทางของเราจะวางซ้อนกันบนเบรกพอยต์ที่ต่ำที่สุด จากนั้นปรับให้เข้ากับเลย์เอาต์แนวนอนที่เติมความกว้างที่มีอยู่โดยเริ่มจากเบรกพอยต์ขนาดเล็ก

<nav class="nav nav-pills flex-column flex-sm-row">
  <a class="flex-sm-fill text-sm-center nav-link active" 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 เพื่อจัดเตรียมแถบการนำทาง อย่าลืมเพิ่ม a role="navigation"ลงในคอนเทนเนอร์หลักที่สมเหตุสมผลที่สุดของ<ul>นั้น หรือ<nav>ล้อมองค์ประกอบไว้รอบการนำทางทั้งหมด อย่าเพิ่มบทบาทให้กับ<ul>ตัวเอง เนื่องจากจะทำให้ไม่สามารถประกาศเป็นรายการจริงโดยเทคโนโลยีอำนวยความสะดวก

โปรดทราบว่า ไม่ ควรกำหนด แถบนำทาง แม้ว่าจะกำหนดรูปแบบเป็นแท็บของ.nav-tabsชั้นเรียนก็ตามไม่ ควร กำหนดrole="tablist"หรือแอตทริบิวต์ สิ่งเหล่านี้เหมาะสำหรับอินเทอร์เฟซแบบแท็บแบบไดนามิกเท่านั้น ตามที่อธิบายไว้ในWAI ARIA Authoring Practices ดูการทำงานของ JavaScriptสำหรับอินเทอร์เฟซแบบแท็บแบบไดนามิกในส่วนนี้สำหรับตัวอย่างrole="tab"role="tabpanel"

การใช้ดรอปดาวน์

เพิ่มเมนูดรอปดาวน์ด้วย HTML เพิ่มเติมเล็กน้อยและปลั๊กอิน JavaScript แบบเลื่อนลง

แท็บที่มีดรอปดาวน์

<ul class="nav nav-tabs">
  <li class="nav-item">
    <a class="nav-link active" href="#">Active</a>
  </li>
  <li class="nav-item dropdown">
    <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Dropdown</a>
    <div class="dropdown-menu">
      <a class="dropdown-item" href="#">Action</a>
      <a class="dropdown-item" href="#">Another action</a>
      <a class="dropdown-item" href="#">Something else here</a>
      <div class="dropdown-divider"></div>
      <a class="dropdown-item" href="#">Separated link</a>
    </div>
  </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" href="#">Active</a>
  </li>
  <li class="nav-item dropdown">
    <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Dropdown</a>
    <div class="dropdown-menu">
      <a class="dropdown-item" href="#">Action</a>
      <a class="dropdown-item" href="#">Another action</a>
      <a class="dropdown-item" href="#">Something else here</a>
      <div class="dropdown-divider"></div>
      <a class="dropdown-item" href="#">Separated link</a>
    </div>
  </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>

พฤติกรรมจาวาสคริปต์

ใช้ปลั๊กอิน JavaScript ของแท็บ รวมเป็นทีละรายการหรือผ่านbootstrap.jsไฟล์ที่คอมไพล์แล้ว เพื่อขยายแท็บการนำทางและยาเม็ด เพื่อสร้างบานหน้าต่างที่แท็บได้ของเนื้อหาในเครื่อง แม้กระทั่งผ่านเมนูดรอปดาวน์

หากคุณกำลังสร้าง JavaScript จากแหล่งที่มา มันต้องการutil.js .

อินเทอร์เฟซแบบแท็บแบบไดนามิก ตามที่อธิบายไว้ในแนวทางปฏิบัติการเขียนWAI ARIAต้องการrole="tablist", role="tab", role="tabpanel", และaria-แอตทริบิวต์เพิ่มเติมเพื่อถ่ายทอดโครงสร้าง ฟังก์ชันการทำงาน และสถานะปัจจุบันแก่ผู้ใช้เทคโนโลยีอำนวยความสะดวก (เช่น โปรแกรมอ่านหน้าจอ)

โปรดทราบว่าอินเทอร์เฟซแบบแท็บแบบไดนามิกไม่ ควร มีเมนูดรอปดาวน์ เนื่องจากจะทำให้เกิดปัญหาในการใช้งานและการเข้าถึงได้ จากมุมมองการใช้งาน การที่องค์ประกอบทริกเกอร์ของแท็บที่แสดงอยู่ในปัจจุบันไม่สามารถมองเห็นได้ในทันที (เนื่องจากอยู่ภายในเมนูดรอปดาวน์แบบปิด) อาจทำให้เกิดความสับสน จากมุมมองการช่วยสำหรับการเข้าถึง ขณะนี้ยังไม่มีวิธีที่เหมาะสมในการแมปโครงสร้างประเภทนี้กับรูปแบบ WAI ARIA มาตรฐาน ซึ่งหมายความว่าผู้ใช้เทคโนโลยีอำนวยความสะดวกไม่สามารถเข้าใจได้ง่าย

ผ้ายีนส์ดิบที่คุณอาจไม่เคยได้ยินชื่อกางเกงยีนส์ออสติน Nesciunt Tofu stumptown aliqua, น้ำยาทำความสะอาดซินธ์มาสเตอร์แบบย้อนยุค หนวด cliche ชั่วคราว วิลเลียมส์เบิร์ก คาร์ล วีแกน เฮลเวติกา Reprehenderit คนขายเนื้อ retro keffiyeh dreamcatcher synth เสื้อกันหนาว Cosby eu banh mi, qui irure terry richardson ex squid Aliquip placeat ซัลเวีย cillum iphone. Seitan aliquip quis คาร์ดิแกน American apparel, butcher voluptate nisi qui.

Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.

Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.

<ul class="nav nav-tabs" id="myTab" role="tablist">
  <li class="nav-item">
    <a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Home</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">Profile</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" id="contact-tab" data-toggle="tab" href="#contact" role="tab" aria-controls="contact" aria-selected="false">Contact</a>
  </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">
    <a class="nav-item nav-link active" id="nav-home-tab" data-toggle="tab" href="#nav-home" role="tab" aria-controls="nav-home" aria-selected="true">Home</a>
    <a class="nav-item nav-link" id="nav-profile-tab" data-toggle="tab" href="#nav-profile" role="tab" aria-controls="nav-profile" aria-selected="false">Profile</a>
    <a class="nav-item nav-link" id="nav-contact-tab" data-toggle="tab" href="#nav-contact" role="tab" aria-controls="nav-contact" aria-selected="false">Contact</a>
  </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>

ปลั๊กอินแท็บยังใช้งานได้กับยาเม็ด

ผลที่ตามมา occaecat ullamco amet non eiusmod nostrud dolore irure incididunt est duis anim sunt officia. Fugiat velit proident aliquip nisi incididunt nostrud การออกกำลังกาย proident est nisi. Irure magna elit commodo anim ex veniam culpa eiusmod id nostrud sit cupidatat ในโฆษณา veniam Eiusmod consequat eu adipisicing minim anim aliquip cupidatat culpa ยกเว้น quis Occaecat sit eu การออกกำลังกาย irure Lorem เหตุการณ์ nostrud.

Ad pariatur nostrud pariatur exercitation ipsum ipsum culpa mollit commodo mollit ex. Aute sunt incididunt amet commodo est sint nisi deserunt pariatur do. Aliquip ex eiusmod voluptate exercitation cillum id incididunt elit sunt. Qui minim sit magna Lorem id et dolore velit Lorem amet exercitation duis deserunt. Anim id labore elit adipisicing ut in id occaecat pariatur ut ullamco ea tempor duis.

Est quis nulla laborum officia ad nisi ex nostrud culpa Lorem excepteur aliquip dolor aliqua irure ex. Nulla ut duis ipsum nisi elit fugiat commodo sunt reprehenderit laborum veniam eu veniam. Eiusmod minim exercitation fugiat irure ex labore incididunt do fugiat commodo aliquip sit id deserunt reprehenderit aliquip nostrud. Amet ex cupidatat excepteur aute veniam incididunt mollit cupidatat esse irure officia elit do ipsum ullamco Lorem. Ullamco ut ad minim do mollit labore ipsum laboris ipsum commodo sunt tempor enim incididunt. Commodo quis sunt dolore aliquip aute tempor irure magna enim minim reprehenderit. Ullamco consectetur culpa veniam sint cillum aliqua incididunt velit ullamco sunt ullamco quis quis commodo voluptate. Mollit nulla nostrud adipisicing aliqua cupidatat aliqua pariatur mollit voluptate voluptate consequat non.

<ul class="nav nav-pills mb-3" id="pills-tab" role="tablist">
  <li class="nav-item">
    <a class="nav-link active" id="pills-home-tab" data-toggle="pill" href="#pills-home" role="tab" aria-controls="pills-home" aria-selected="true">Home</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" id="pills-profile-tab" data-toggle="pill" href="#pills-profile" role="tab" aria-controls="pills-profile" aria-selected="false">Profile</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" id="pills-contact-tab" data-toggle="pill" href="#pills-contact" role="tab" aria-controls="pills-contact" aria-selected="false">Contact</a>
  </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>

และด้วยเม็ดยาแนวตั้ง

Cillum ad ut irure ชั่วคราว velit nostrud occaecat ullamco aliqua anim Lorem sint. Veniam sint duis incididunt do esse magna mollitยกเว้นแรงงานlabum qui. id id reprehenderit sit est eu aliqua occaecat quis et velitยกเว้นแรงงาน mollit dolore eiusmod. Ipsum dolor ใน occaecat commodo et voluptate minim reprehenderit mollit pariatur. Deserunt ไม่ใช่ laborum enim et cillum eu deserunt ยกเว้น ea incidunt minim occaecat.

Culpa dolor voluptate do laboris laboris irure reprehenderit id incididunt duis pariatur mollit aute magna pariatur consectetur. Eu veniam duis non ut dolor deserunt commodo et minim in quis laboris ipsum velit id veniam. Quis ut consectetur adipisicing officia excepteur non sit. Ut et elit aliquip labore Lorem enim eu. Ullamco mollit occaecat dolore ipsum id officia mollit qui esse anim eiusmod do sint minim consectetur qui.

Fugiat id quis dolor culpa eiusmod anim velit excepteur proident dolor aute qui magna. Ad proident laboris ullamco esse anim Lorem Lorem veniam quis Lorem irure occaecat velit nostrud magna nulla. Velit et et proident Lorem do ea tempor officia dolor. Reprehenderit Lorem aliquip labore est magna commodo est ea veniam consectetur.

Eu dolore ea ullamco dolore Lorem id cupidatat excepteur reprehenderit consectetur elit id dolor proident in cupidatat officia. Voluptate excepteur commodo labore nisi cillum duis aliqua do. Aliqua amet qui mollit consectetur nulla mollit velit aliqua veniam nisi id do Lorem deserunt amet. Culpa ullamco sit adipisicing labore officia magna elit nisi in aute tempor commodo eiusmod.

<div class="row">
  <div class="col-3">
    <div class="nav flex-column nav-pills" id="v-pills-tab" role="tablist" aria-orientation="vertical">
      <a class="nav-link active" id="v-pills-home-tab" data-toggle="pill" href="#v-pills-home" role="tab" aria-controls="v-pills-home" aria-selected="true">Home</a>
      <a class="nav-link" id="v-pills-profile-tab" data-toggle="pill" href="#v-pills-profile" role="tab" aria-controls="v-pills-profile" aria-selected="false">Profile</a>
      <a class="nav-link" id="v-pills-messages-tab" data-toggle="pill" href="#v-pills-messages" role="tab" aria-controls="v-pills-messages" aria-selected="false">Messages</a>
      <a class="nav-link" id="v-pills-settings-tab" data-toggle="pill" href="#v-pills-settings" role="tab" aria-controls="v-pills-settings" aria-selected="false">Settings</a>
    </div>
  </div>
  <div class="col-9">
    <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>
</div>

การใช้แอตทริบิวต์ข้อมูล

คุณสามารถเปิดใช้งานการนำทางแท็บหรือยาเม็ดโดยไม่ต้องเขียน JavaScript ใด ๆ โดยเพียงแค่ระบุdata-toggle="tab"หรือdata-toggle="pill"บนองค์ประกอบ ใช้แอตทริบิวต์ข้อมูลเหล่านี้ใน.nav-tabsหรือ.nav-pills

<!-- Nav tabs -->
<ul class="nav nav-tabs" id="myTab" role="tablist">
  <li class="nav-item">
    <a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Home</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">Profile</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" id="messages-tab" data-toggle="tab" href="#messages" role="tab" aria-controls="messages" aria-selected="false">Messages</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" id="settings-tab" data-toggle="tab" href="#settings" role="tab" aria-controls="settings" aria-selected="false">Settings</a>
  </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 (ต้องเปิดใช้งานแต่ละแท็บแยกกัน):

$('#myTab a').on('click', function (e) {
  e.preventDefault()
  $(this).tab('show')
})

คุณสามารถเปิดใช้งานแต่ละแท็บได้หลายวิธี:

$('#myTab a[href="#profile"]').tab('show') // Select tab by name
$('#myTab li:first-child a').tab('show') // Select first tab
$('#myTab li:last-child a').tab('show') // Select last tab
$('#myTab li:nth-child(3) a').tab('show') // Select third 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>

วิธีการ

วิธีการและการเปลี่ยนแบบอะซิงโครนัส

เมธอด API ทั้งหมดเป็นแบบอะซิงโครนัสและเริ่มต้นการเปลี่ยนแปลง พวกเขาจะกลับไปที่ผู้โทรทันทีที่เริ่มเปลี่ยน แต่ ก่อน ที่จะสิ้นสุด นอกจากนี้ การเรียกเมธอดบนคอมโพเนนต์การเปลี่ยนจะถูกละเว้น

ดูเอกสาร JavaScript ของเราสำหรับข้อมูลเพิ่มเติม

$().tab

เปิดใช้งานองค์ประกอบแท็บและคอนเทนเนอร์เนื้อหา แท็บควรมี a data-targetหรือ การhrefกำหนดเป้าหมายโหนดคอนเทนเนอร์ใน DOM

<ul class="nav nav-tabs" id="myTab" role="tablist">
  <li class="nav-item">
    <a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Home</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">Profile</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" id="messages-tab" data-toggle="tab" href="#messages" role="tab" aria-controls="messages" aria-selected="false">Messages</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" id="settings-tab" data-toggle="tab" href="#settings" role="tab" aria-controls="settings" aria-selected="false">Settings</a>
  </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>
  $(function () {
    $('#myTab li:last-child a').tab('show')
  })
</script>

.tab('แสดง')

เลือกแท็บที่กำหนดและแสดงบานหน้าต่างที่เกี่ยวข้อง แท็บอื่น ๆ ที่เลือกไว้ก่อนหน้านี้จะไม่ถูกเลือกและบานหน้าต่างที่เกี่ยวข้องจะถูกซ่อนไว้ กลับไปยังผู้โทรก่อนที่บานหน้าต่างแท็บจะแสดงขึ้นจริง (เช่น ก่อนที่shown.bs.tabเหตุการณ์จะเกิดขึ้น)

$('#someTab').tab('show')

.tab('ทิ้ง')

ทำลายแท็บขององค์ประกอบ

เหตุการณ์

เมื่อแสดงแท็บใหม่ เหตุการณ์จะเริ่มขึ้นตามลำดับต่อไปนี้:

  1. hide.bs.tab(บนแท็บที่ใช้งานอยู่ในปัจจุบัน)
  2. show.bs.tab(บนแท็บที่จะแสดง)
  3. hidden.bs.tab(ในแท็บที่ใช้งานก่อนหน้านี้ อันเดียวกับhide.bs.tabเหตุการณ์)
  4. shown.bs.tab(บนแท็บเพิ่งแสดงที่เพิ่งเปิดใช้งาน อันเดียวกับshow.bs.tabเหตุการณ์)

หากไม่มีแท็บใดเปิดใช้งานอยู่ เหตุการณ์ hide.bs.tabและhidden.bs.tabจะไม่เริ่มทำงาน

ประเภทงาน คำอธิบาย
show.bs.tab เหตุการณ์นี้เริ่มทำงานในการแสดงแท็บ แต่ก่อนที่จะมีการแสดงแท็บใหม่ ใช้event.targetและevent.relatedTargetเพื่อกำหนดเป้าหมายแท็บที่ใช้งานอยู่และแท็บที่ใช้งานอยู่ก่อนหน้า (ถ้ามี) ตามลำดับ
แสดง.bs.tab เหตุการณ์นี้เริ่มทำงานในการแสดงแท็บหลังจากแสดงแท็บแล้ว ใช้event.targetและevent.relatedTargetเพื่อกำหนดเป้าหมายแท็บที่ใช้งานอยู่และแท็บที่ใช้งานอยู่ก่อนหน้า (ถ้ามี) ตามลำดับ
hide.bs.tab เหตุการณ์นี้เริ่มทำงานเมื่อมีการแสดงแท็บใหม่ (และทำให้แท็บที่ใช้งานอยู่ก่อนหน้านี้ถูกซ่อนไว้) ใช้event.targetและevent.relatedTargetเพื่อกำหนดเป้าหมายแท็บที่ใช้งานอยู่ในปัจจุบันและแท็บใหม่ที่จะใช้งานเร็วๆ นี้ ตามลำดับ
hidden.bs.tab เหตุการณ์นี้เริ่มทำงานหลังจากแสดงแท็บใหม่ (และทำให้แท็บที่ใช้งานอยู่ก่อนหน้านี้ถูกซ่อนไว้) ใช้event.targetและevent.relatedTargetเพื่อกำหนดเป้าหมายแท็บที่ใช้งานอยู่ก่อนหน้าและแท็บใหม่ที่ใช้งานอยู่ตามลำดับ
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
  e.target // newly activated tab
  e.relatedTarget // previous active tab
})