เอกสารประกอบและตัวอย่างสำหรับวิธีใช้ส่วนประกอบการนำทางที่รวมอยู่ใน 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">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">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">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">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">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">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">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">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">Disabled</a>
  </li>
</ul>

เมื่อใช้<nav>การนำทางแบบอิง คุณสามารถละเว้นได้อย่างปลอดภัย.nav-itemเนื่องจาก.nav-linkจำเป็นสำหรับ<a>องค์ประกอบการจัดสไตล์เท่านั้น

<nav class="nav nav-pills nav-fill">
  <a class="nav-link active" 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" 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" 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>

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

หากคุณต้องการรูปแบบการนำทางที่ตอบสนอง ให้ลองใช้ชุด ยูทิลิ ตี้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">Disabled</a>
</nav>

เกี่ยวกับการเข้าถึง

หากคุณกำลังใช้ navs เพื่อจัดเตรียมแถบการนำทาง อย่าลืมเพิ่ม a role="navigation"ลงในคอนเทนเนอร์หลักที่สมเหตุสมผลที่สุดของ<ul>นั้น หรือ<nav>ล้อมองค์ประกอบไว้รอบการนำทางทั้งหมด อย่าเพิ่มบทบาทให้กับ<ul>ตัวเอง เนื่องจากจะทำให้ไม่สามารถประกาศเป็นรายการจริงโดยเทคโนโลยีอำนวยความสะดวก

โปรดทราบว่า ไม่ ควรกำหนด แถบนำทาง แม้ว่าจะกำหนดรูปแบบเป็นแท็บของ.nav-tabsชั้นเรียนก็ตามไม่ ควร กำหนดrole="tablist"หรือแอตทริบิวต์ สิ่งเหล่านี้เหมาะสำหรับอินเทอร์เฟซแบบแท็บแบบไดนามิกเท่านั้น ตามที่อธิบายไว้ใน รูปแบบแท็ บARIA Authoring Practices Guide ดูการทำงานของ 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-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">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-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">Disabled</a>
  </li>
</ul>

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

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

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

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

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

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

เนื้อหาตัวยึดตำแหน่งสำหรับแผงแท็บ อันนี้เกี่ยวข้องกับแท็บโปรไฟล์ คุณได้รับสถาปัตยกรรมที่ดีที่สุด แสตมป์พาสปอร์ต เธอเป็นสากล ดี สด ดุ เราได้ล็อคไว้ ไม่เคยวางแผนว่าวันหนึ่งฉันจะเสียคุณไป เธอกินหัวใจของคุณออก จูบของคุณคือจักรวาล ทุกการเคลื่อนไหวคือเวทย์มนตร์ ฉันหมายถึงพวกนั้น ฉันหมายถึงเหมือนเธอนั่นแหละ ทักทายคนที่รัก ไปเที่ยวกัน แค่เป็นเจ้าของคืนเหมือนวันที่ 4 กรกฎาคม! แต่คุณควรได้รับการสูญเสีย

Placeholder content for the tab panel. This one relates to the contact tab. Her love is like a drug. All my girls vintage Chanel baby. Got a motel and built a fort out of sheets. 'Cause she's the muse and the artist. (This is how we do) So you wanna play with magic. So just be sure before you give it all to me. I'm walking, I'm walking on air (tonight). Skip the talk, heard it all, time to walk the walk. Catch her if you can. Stinging like a bee I earned my stripes.

<ul class="nav nav-tabs" id="myTab" role="tablist">
  <li class="nav-item" role="presentation">
    <button class="nav-link active" id="home-tab" data-toggle="tab" data-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-toggle="tab" data-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-toggle="tab" data-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-toggle="tab" data-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-toggle="tab" data-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-toggle="tab" data-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>

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

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

Placeholder content for the tab panel. This one relates to the profile tab. You got the finest architecture. Passport stamps, she's cosmopolitan. Fine, fresh, fierce, we got it on lock. Never planned that one day I'd be losing you. She eats your heart out. Your kiss is cosmic, every move is magic. I mean the ones, I mean like she's the one. Greetings loved ones let's take a journey. Just own the night like the 4th of July! But you'd rather get wasted.

Placeholder content for the tab panel. This one relates to the contact tab. Her love is like a drug. All my girls vintage Chanel baby. Got a motel and built a fort out of sheets. 'Cause she's the muse and the artist. (This is how we do) So you wanna play with magic. So just be sure before you give it all to me. I'm walking, I'm walking on air (tonight). Skip the talk, heard it all, time to walk the walk. Catch her if you can. Stinging like a bee I earned my stripes.

<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-toggle="pill" data-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-toggle="pill" data-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-toggle="pill" data-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>

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

เนื้อหาตัวยึดตำแหน่งสำหรับแผงแท็บ อันนี้เกี่ยวข้องกับแท็บหน้าแรก เห็นคุณอยู่กลางเมืองร้องเพลงบลูส์ ดูคุณหมุนท่อระบายน้ำ ทำไมคุณไม่ให้ฉันหยุดโดย? หนักคือศีรษะที่สวมมงกุฎ ใช่ เราทำให้ทูตสวรรค์ร้องไห้ ฝนตกลงมาบนโลกจากเบื้องบน อยากดูการแสดงแบบ 3D หนัง คุณเคยรู้สึกบ้างไหมว่ารู้สึกบางกระดาษ มันใช่หรือไม่ใช่ ไม่ใช่เลย

Placeholder content for the tab panel. This one relates to the profile tab. Takes you miles high, so high, 'cause she’s got that one international smile. There's a stranger in my bed, there's a pounding in my head. Oh, no. In another life I would make you stay. ‘Cause I, I’m capable of anything. Suiting up for my crowning battle. Used to steal your parents' liquor and climb to the roof. Tone, tan fit and ready, turn it up cause its gettin' heavy. Her love is like a drug. I guess that I forgot I had a choice.

Placeholder content for the tab panel. This one relates to the messages tab. You got the finest architecture. Passport stamps, she's cosmopolitan. Fine, fresh, fierce, we got it on lock. Never planned that one day I'd be losing you. She eats your heart out. Your kiss is cosmic, every move is magic. I mean the ones, I mean like she's the one. Greetings loved ones let's take a journey. Just own the night like the 4th of July! But you'd rather get wasted.

Placeholder content for the tab panel. This one relates to the settings tab. Her love is like a drug. All my girls vintage Chanel baby. Got a motel and built a fort out of sheets. 'Cause she's the muse and the artist. (This is how we do) So you wanna play with magic. So just be sure before you give it all to me. I'm walking, I'm walking on air (tonight). Skip the talk, heard it all, time to walk the walk. Catch her if you can. Stinging like a bee I earned my stripes.

<div class="row">
  <div class="col-3">
    <div class="nav flex-column nav-pills" id="v-pills-tab" role="tablist" aria-orientation="vertical">
      <button class="nav-link active" id="v-pills-home-tab" data-toggle="pill" data-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-toggle="pill" data-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-toggle="pill" data-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-toggle="pill" data-target="#v-pills-settings" type="button" role="tab" aria-controls="v-pills-settings" aria-selected="false">Settings</button>
    </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" role="presentation">
    <button class="nav-link active" id="home-tab" data-toggle="tab" data-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-toggle="tab" data-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-toggle="tab" data-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-toggle="tab" data-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 (ต้องเปิดใช้งานแต่ละแท็บแยกกัน):

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

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

$('#myTab button[data-target="#profile"]').tab('show') // Select tab by name
$('#myTab li:first-child button').tab('show') // Select first tab
$('#myTab li:last-child button').tab('show') // Select last tab
$('#myTab li:nth-child(3) button').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" role="presentation">
    <button class="nav-link active" id="home-tab" data-toggle="tab" data-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-toggle="tab" data-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-toggle="tab" data-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-toggle="tab" data-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>
  $(function () {
    $('#myTab li:last-child button').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เพื่อกำหนดเป้าหมายแท็บที่ใช้งานอยู่ก่อนหน้าและแท็บใหม่ที่ใช้งานอยู่ตามลำดับ
$('button[data-toggle="tab"]').on('shown.bs.tab', function (event) {
  event.target // newly activated tab
  event.relatedTarget // previous active tab
})