Navs
Tài liệu và ví dụ về cách sử dụng các thành phần điều hướng đi kèm của Bootstrap.
Điều hướng cơ sở
Điều hướng có sẵn trong Bootstrap chia sẻ kiểu và đánh dấu chung, từ .nav
lớp cơ sở đến trạng thái hoạt động và trạng thái bị vô hiệu hóa. Hoán đổi các lớp bổ trợ để chuyển đổi giữa mỗi kiểu.
Thành .nav
phần cơ sở được xây dựng bằng flexbox và cung cấp nền tảng vững chắc để xây dựng tất cả các loại thành phần điều hướng. Nó bao gồm một số ghi đè kiểu (để làm việc với danh sách), một số đệm liên kết cho các vùng truy cập lớn hơn và kiểu cơ bản bị tắt.
Thành .nav
phần cơ sở không bao gồm bất kỳ .active
trạng thái nào. Các ví dụ sau bao gồm lớp, chủ yếu để chứng minh rằng lớp cụ thể này không kích hoạt bất kỳ kiểu đặc biệt nào.
Các lớp học được sử dụng xuyên suốt, vì vậy đánh dấu của bạn có thể siêu linh hoạt. Sử dụng <ul>
các mục như trên, <ol>
nếu thứ tự các mặt hàng của bạn là quan trọng, hoặc cuộn của riêng bạn với một <nav>
phần tử. Bởi vì việc .nav
sử dụng display: flex
, các liên kết điều hướng hoạt động giống như các mục điều hướng, nhưng không có đánh dấu bổ sung.
Các kiểu có sẵn
Thay đổi kiểu của .nav
thành phần s bằng các bổ ngữ và tiện ích. Trộn và kết hợp nếu cần, hoặc xây dựng của riêng bạn.
Căn chỉnh theo chiều ngang
Thay đổi căn chỉnh ngang của điều hướng của bạn bằng các tiện ích flexbox . Theo mặc định, các nav được căn trái, nhưng bạn có thể dễ dàng thay đổi chúng thành căn giữa hoặc căn phải.
Căn giữa với .justify-content-center
:
Căn phải với .justify-content-end
:
Theo chiều dọc
Xếp chồng điều hướng của bạn bằng cách thay đổi hướng mục linh hoạt với .flex-column
tiện ích. Cần xếp chúng trên một số khung nhìn nhưng không phải những khung khác? Sử dụng các phiên bản đáp ứng (ví dụ .flex-sm-column
:).
Như mọi khi, điều hướng dọc cũng có thể thực hiện được mà không cần <ul>
s.
Các tab
Lấy điều hướng cơ bản từ phía trên và thêm .nav-tabs
lớp để tạo giao diện theo thẻ. Sử dụng chúng để tạo các vùng có thể lập tab bằng plugin JavaScript tab của chúng tôi .
Thuốc
Sử dụng cùng một HTML đó, nhưng sử dụng .nav-pills
thay thế:
Điền và căn chỉnh
Buộc .nav
nội dung của bạn mở rộng toàn bộ chiều rộng có sẵn một trong hai lớp bổ trợ. Để lấp đầy một cách tương xứng tất cả không gian có sẵn với .nav-item
s của bạn, hãy sử dụng .nav-fill
. Lưu ý rằng tất cả không gian theo chiều ngang đều bị chiếm dụng, nhưng không phải mọi mục điều hướng đều có cùng chiều rộng.
Khi sử dụng <nav>
điều hướng dựa trên cơ sở, hãy đảm bảo bao gồm .nav-item
các neo.
Đối với các phần tử có chiều rộng bằng nhau, hãy sử dụng .nav-justified
. Tất cả không gian ngang sẽ bị chiếm bởi các liên kết điều hướng, nhưng không giống như .nav-fill
ở trên, mọi mục điều hướng sẽ có cùng chiều rộng.
Tương tự .nav-fill
như ví dụ sử dụng <nav>
điều hướng dựa trên cơ sở, hãy đảm bảo bao gồm .nav-item
các neo.
Làm việc với các tiện ích linh hoạt
Nếu bạn cần các biến thể điều hướng đáp ứng, hãy xem xét sử dụng một loạt các tiện ích flexbox . Mặc dù dài dòng hơn, nhưng các tiện ích này cung cấp khả năng tùy chỉnh cao hơn trên các điểm ngắt đáp ứng. Trong ví dụ bên dưới, điều hướng của chúng ta sẽ được xếp chồng lên điểm ngắt thấp nhất, sau đó thích ứng với bố cục nằm ngang lấp đầy chiều rộng có sẵn bắt đầu từ điểm ngắt nhỏ.
Về khả năng tiếp cận
Nếu bạn đang sử dụng nav để cung cấp thanh điều hướng, hãy đảm bảo thêm một role="navigation"
vào vùng chứa mẹ hợp lý nhất của <ul>
hoặc bao bọc một <nav>
phần tử xung quanh toàn bộ điều hướng. Không thêm vai trò vào <ul>
chính nó, vì điều này sẽ ngăn nó được công bố như một danh sách thực tế bởi các công nghệ hỗ trợ.
Lưu ý rằng thanh điều hướng, ngay cả khi được tạo kiểu trực quan dưới dạng tab cùng .nav-tabs
lớp, không nên được cung cấp role="tablist"
hoặc role="tab"
thuộc role="tabpanel"
tính. Các giao diện này chỉ thích hợp cho các giao diện theo thẻ động, như được mô tả trong các Thực tiễn về tác giả của WAI ARIA . Xem hành vi JavaScript cho các giao diện theo thẻ động trong phần này để làm ví dụ.
Sử dụng trình đơn thả xuống
Thêm menu thả xuống với một chút HTML bổ sung và plugin JavaScript thả xuống .
Các tab có danh sách thả xuống
Thuốc có danh sách thả xuống
Hành vi JavaScript
Sử dụng plugin JavaScript tab — bao gồm nó riêng lẻ hoặc thông qua bootstrap.js
tệp đã biên dịch — để mở rộng các tab và viên điều hướng của chúng tôi nhằm tạo các ngăn có thể tab của nội dung cục bộ, ngay cả qua menu thả xuống.
Nếu bạn đang xây dựng JavaScript của chúng tôi từ nguồn, nó yêu cầuutil.js
.
Giao diện theo thẻ động, như được mô tả trong Thực tiễn tác giả WAI ARIArole="tablist"
, yêu cầu role="tab"
và role="tabpanel"
các aria-
thuộc tính bổ sung để truyền đạt cấu trúc, chức năng và trạng thái hiện tại của chúng cho người dùng công nghệ hỗ trợ (chẳng hạn như trình đọc màn hình).
Lưu ý rằng giao diện theo thẻ động không được chứa menu thả xuống, vì điều này gây ra các vấn đề về khả năng sử dụng và khả năng truy cập. Từ góc độ khả năng sử dụng, thực tế là phần tử kích hoạt của tab hiện đang hiển thị không hiển thị ngay lập tức (vì nó nằm trong menu thả xuống đã đóng) có thể gây ra nhầm lẫn. Từ quan điểm khả năng tiếp cận, hiện không có cách hợp lý nào để ánh xạ loại cấu trúc này với một mẫu WAI ARIA tiêu chuẩn, có nghĩa là nó không thể dễ hiểu đối với người sử dụng công nghệ hỗ trợ.
Chất liệu denim thô chắc hẳn bạn chưa từng nghe nói đến quần short jean Austin. Nesciunt đậu phụ stumptown aliqua, làm sạch tổng thể retro synth. Ria mép khuôn mẫu, williamsburg carles vegan helvetica. Người bán thịt người bán thịt retro keffiyeh dreamcatcher synth. Áo len Cosby eu banh mi, qui irure terry richardson ex ink. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan may mặc của mỹ, 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.
Để giúp phù hợp với nhu cầu của bạn, điều này hoạt động với <ul>
đánh dấu dựa trên, như được hiển thị ở trên hoặc với bất kỳ đánh dấu "tự cuộn" nào tùy ý. Lưu ý rằng nếu bạn đang sử dụng <nav>
, bạn không nên thêm role="tablist"
trực tiếp vào nó, vì điều này sẽ ghi đè vai trò gốc của phần tử làm mốc điều hướng. Thay vào đó, hãy chuyển sang một phần tử thay thế (trong ví dụ dưới đây, một phần tử đơn giản <div>
) và quấn <nav>
xung quanh nó.
Plugin tab cũng hoạt động với thuốc.
Consequat occaecat ullamco amet non eiusmod nostrud dolore irure incididunt est duis anim sunt officia. Fugiat velit proident aliquip nisi incididunt nostrud tập thể dục proident est nisi. Irure magna elit Goodso anim ex veniam culpa eiusmod id nostrud sit cupidatat in veniam ad. Eiusmodequat eu adipisicing minim anim aliquip cupidatat culpa excepteur quis. Occaecat sit eu tập thể dục không đảm bảo Lorem incididunt 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.
Và với những viên thuốc dọc.
Cillum ad ut irure tempor velit nostrud occaecat ullamco aliqua anim Lorem sint. Veniam sint duis incididunt do esse magna mollit excepteur labourum qui. Id id reploynderit sit est eu aliqua occaecat quis et velit excepteur labourum mollit dolore eiusmod. Ipsum dolor trong occaecat Goodso et voluptate minim reploynderit mollit pariesur. Deserunt non labourum enim et cillum eu Descepteur ea incididunt 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.
Sử dụng thuộc tính dữ liệu
Bạn có thể kích hoạt điều hướng tab hoặc viên thuốc mà không cần viết bất kỳ JavaScript nào bằng cách chỉ định data-toggle="tab"
hoặc data-toggle="pill"
trên một phần tử. Sử dụng các thuộc tính dữ liệu này trên .nav-tabs
hoặc .nav-pills
.
Qua JavaScript
Bật các tab có thể chuyển thành tab qua JavaScript (mỗi tab cần được kích hoạt riêng lẻ):
Bạn có thể kích hoạt các tab riêng lẻ theo một số cách:
Hiệu ứng mờ dần
Để làm cho các tab mờ dần, hãy thêm .fade
vào từng tab .tab-pane
. Ngăn tab đầu tiên cũng phải .show
hiển thị nội dung ban đầu.
Phương pháp
Các phương thức và chuyển tiếp không đồng bộ
Tất cả các phương thức API là không đồng bộ và bắt đầu quá trình chuyển đổi . Họ quay lại người gọi ngay sau khi quá trình chuyển đổi được bắt đầu nhưng trước khi quá trình chuyển đổi kết thúc . Ngoài ra, một lệnh gọi phương thức trên một thành phần chuyển tiếp sẽ bị bỏ qua .
Xem tài liệu JavaScript của chúng tôi để biết thêm thông tin .
tab $ ().
Kích hoạt phần tử tab và vùng chứa nội dung. Tab phải có một data-target
hoặc một href
nhắm mục tiêu một nút vùng chứa trong DOM.
.tab ('show')
Chọn tab đã cho và hiển thị ngăn liên kết của nó. Bất kỳ tab nào khác đã được chọn trước đó sẽ trở thành không được chọn và ngăn liên kết của nó bị ẩn. Trả về trình gọi trước khi ngăn tab thực sự được hiển thị (tức là trước khi shown.bs.tab
sự kiện xảy ra).
.tab ('vứt bỏ')
Hủy tab của một phần tử.
Sự kiện
Khi hiển thị một tab mới, các sự kiện sẽ kích hoạt theo thứ tự sau:
hide.bs.tab
(trên tab hoạt động hiện tại)show.bs.tab
(trên tab được hiển thị)hidden.bs.tab
(trên tab hoạt động trước đó, tab tương tự như chohide.bs.tab
sự kiện)shown.bs.tab
(trên tab vừa được hiển thị mới hoạt động, tab tương tự như đối vớishow.bs.tab
sự kiện)
Nếu không có tab nào hoạt động, thì sự kiện hide.bs.tab
và hidden.bs.tab
sẽ không được kích hoạt.
Loại sự kiện | Sự mô tả |
---|---|
show.bs.tab | Sự kiện này kích hoạt trên chương trình tab, nhưng trước khi tab mới được hiển thị. Sử dụng event.target và event.relatedTarget để nhắm mục tiêu tab đang hoạt động và tab đang hoạt động trước đó (nếu có) tương ứng. |
show.bs.tab | Sự kiện này kích hoạt trên tab hiển thị sau khi tab được hiển thị. Sử dụng event.target và event.relatedTarget để nhắm mục tiêu tab đang hoạt động và tab đang hoạt động trước đó (nếu có) tương ứng. |
hide.bs.tab | Sự kiện này kích hoạt khi một tab mới được hiển thị (và do đó tab đang hoạt động trước đó sẽ bị ẩn). Sử dụng event.target và event.relatedTarget để nhắm mục tiêu tab đang hoạt động hiện tại và tab sắp hoạt động mới, tương ứng. |
hidden.bs.tab | Sự kiện này kích hoạt sau khi một tab mới được hiển thị (và do đó tab hoạt động trước đó bị ẩn). Sử dụng event.target và event.relatedTarget để nhắm mục tiêu tab hoạt động trước đó và tab hoạt động mới, tương ứng. |