Navs e pestanas
Documentación e exemplos de como usar os compoñentes de navegación incluídos en Bootstrap.
Navegación base
A navegación dispoñible en Bootstrap comparte estilos e marcas xerais, desde a .nav
clase base ata os estados activo e desactivado. Cambia as clases modificadoras para cambiar entre cada estilo.
O .nav
compoñente base está construído con flexbox e proporciona unha base sólida para construír todo tipo de compoñentes de navegación. Inclúe algunhas substitucións de estilo (para traballar con listas), algúns recheos de ligazóns para áreas de acceso máis grandes e estilos básicos desactivados.
O .nav
compoñente base non inclúe ningún .active
estado. Os seguintes exemplos inclúen a clase, principalmente para demostrar que esta clase en particular non activa ningún estilo especial.
Para transmitir o estado activo ás tecnoloxías de asistencia, use o aria-current
atributo, utilizando o page
valor da páxina actual ou true
do elemento actual dun conxunto.
<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>
As clases úsanse en todas partes, polo que o teu marcado pode ser moi flexible. Usa <ul>
s como a anterior, <ol>
se a orde dos teus artigos é importante, ou tira o teu propio cun <nav>
elemento. Debido a que .nav
usa display: flex
, as ligazóns de navegación se comportan do mesmo xeito que os elementos de navegación, pero sen o marcado adicional.
<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>
Estilos dispoñibles
Cambia o estilo do .nav
compoñente s con modificadores e utilidades. Mestura e combina segundo sexa necesario ou crea o teu propio.
Aliñación horizontal
Cambia a aliñación horizontal do teu navegador coas utilidades flexbox . De xeito predeterminado, os navegadores están aliñados á esquerda, pero podes cambialos facilmente ao centro ou á dereita.
Centrado con .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>
Aliñado á dereita con .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>
Vertical
Empile a súa navegación cambiando a dirección do elemento flexible coa .flex-column
utilidade. Necesitas apilalos nalgunhas vistas pero non noutras? Use as versións sensibles (por exemplo, .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>
Como sempre, a navegación vertical <ul>
tamén é posible sen 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>
Fichas
Toma o navegador básico desde arriba e engade a .nav-tabs
clase para xerar unha interface con pestanas. Utilízaos para crear rexións tabulables co noso complemento JavaScript de pestanas .
<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>
Pastillas
Tome o mesmo HTML, pero use no seu .nav-pills
lugar:
<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>
Enche e xustifica
Forza o teu .nav
contido a estender o ancho total dispoñible nunha das dúas clases de modificadores. Para encher proporcionalmente todo o espazo dispoñible cos teus .nav-item
, usa .nav-fill
. Teña en conta que todo o espazo horizontal está ocupado, pero non todos os elementos de navegación teñen o mesmo ancho.
<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>
Ao usar unha <nav>
navegación baseada en -, pode omitir con seguridade .nav-item
xa que só .nav-link
é necesario para os elementos de estilo <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>
Para elementos de igual ancho, use .nav-justified
. Todo o espazo horizontal estará ocupado por ligazóns de navegación, pero a diferenza do .nav-fill
anterior, todos os elementos de navegación terán o mesmo ancho.
<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>
Similar ao .nav-fill
exemplo usando unha <nav>
navegación baseada en -.
<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>
Traballando con utilidades flexibles
Se necesitas variacións de navegación sensibles, considera usar unha serie de utilidades flexbox . Aínda que son máis detalladas, estas utilidades ofrecen unha maior personalización en puntos de interrupción sensibles. No seguinte exemplo, a nosa navegación apilarase no punto de interrupción máis baixo e, a continuación, adaptarase a un deseño horizontal que enche o ancho dispoñible a partir do punto de interrupción pequeno.
<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>
En canto á accesibilidade
Se estás a usar navs para fornecer unha barra de navegación, asegúrate de engadir un role="navigation"
ao contenedor principal máis lóxico do <ul>
, ou envolve un <nav>
elemento en toda a navegación. Non engadas o papel ao <ul>
propio, xa que isto evitaría que sexa anunciado como unha lista real polas tecnoloxías de asistencia.
Teña en conta que as barras de navegación, aínda que teñan un estilo visual como pestanas coa .nav-tabs
clase, non se deben dar nin atributos. Estes só son apropiados para interfaces de pestanas dinámicas, como se describe nas prácticas de creación de WAI ARIA . Consulte o comportamento de JavaScript para interfaces con pestanas dinámicas nesta sección para obter un exemplo. O atributo non é necesario nas interfaces de pestanas dinámicas xa que o noso JavaScript xestiona o estado seleccionado engadindo na pestana activa.role="tablist"
role="tab"
role="tabpanel"
aria-current
aria-selected="true"
Usando menú despregable
Engade menús despregables cun HTML extra e o complemento JavaScript para menús despregables .
Pestanas con menú despregable
<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>
Pastillas con menú despregable
<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>
Sass
Variables
$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;
Comportamento de JavaScript
Use o complemento de JavaScript da pestana (inclúeo individualmente ou a través do bootstrap.js
ficheiro compilado) para ampliar as nosas pestanas e pílulas de navegación para crear paneis de contido local con pestanas.
As interfaces dinámicas con pestanas, tal e como se describen nas prácticas de creación de WAI ARIA , requiren role="tablist"
, role="tab"
, role="tabpanel"
, e aria-
atributos adicionais para transmitir a súa estrutura, funcionalidade e estado actual aos usuarios de tecnoloxías de asistencia (como lectores de pantalla). Como mellor práctica, recomendamos utilizar <button>
elementos para as pestanas, xa que se trata de controis que desencadean un cambio dinámico, en lugar de ligazóns que navegan a unha nova páxina ou localización.
Teña en conta que as interfaces dinámicas con pestanas non deben conter menús despregables, xa que isto provoca problemas de usabilidade e accesibilidade. Desde a perspectiva da usabilidade, o feito de que o elemento activador da pestana que se amosa actualmente non estea inmediatamente visible (xa que está dentro do menú despregable pechado) pode causar confusión. Desde o punto de vista da accesibilidade, actualmente non hai unha forma sensata de asignar este tipo de construción a un patrón WAI ARIA estándar, o que significa que non se pode facer facilmente comprensible para os usuarios de tecnoloxías de asistencia.
Este é un contido de marcador de posición o contido asociado da pestana Inicio. Facendo clic noutra pestana, alternarase a visibilidade desta para a seguinte. A pestana JavaScript intercambia clases para controlar a visibilidade do contido e o estilo. Podes usalo con pestanas, pílulas e calquera outra .nav
navegación alimentada.
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>
Para axudarche a atender ás túas necesidades, isto funciona con <ul>
marcas baseadas en -, como se mostra arriba, ou con calquera marcaxe arbitraria "roll your own". Teña en conta que se está a usar <nav>
, non debe engadir role="tablist"
directamente a el, xa que isto anularía o papel nativo do elemento como punto de referencia de navegación. En vez diso, cambia a un elemento alternativo (no exemplo de abaixo, un simple <div>
) e envolve o elemento <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>
O complemento tabs tamén funciona con pílulas.
Este é un contido de marcador de posición o contido asociado da pestana Inicio. Facendo clic noutra pestana, alternarase a visibilidade desta para a seguinte. A pestana JavaScript intercambia clases para controlar a visibilidade do contido e o estilo. Podes usalo con pestanas, pílulas e calquera outra .nav
navegación alimentada.
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>
E con pastillas verticais.
Este é un contido de marcador de posición o contido asociado da pestana Inicio. Facendo clic noutra pestana, alternarase a visibilidade desta para a seguinte. A pestana JavaScript intercambia clases para controlar a visibilidade do contido e o estilo. Podes usalo con pestanas, pílulas e calquera outra .nav
navegación alimentada.
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>
Usando atributos de datos
Podes activar unha pestana ou navegación por pílulas sen escribir JavaScript simplemente especificando data-bs-toggle="tab"
ou data-bs-toggle="pill"
nun elemento. Use estes atributos de datos en .nav-tabs
ou .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>
Vía JavaScript
Activa as pestanas con tabulacións a través de JavaScript (cada pestana debe activarse individualmente):
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()
})
})
Podes activar pestanas individuais de varias maneiras:
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
Efecto de desvanecemento
Para que as pestanas se desvanezan, engade .fade
a cada unha .tab-pane
. O primeiro panel de pestanas tamén debe .show
facer visible o contido inicial.
<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>
Métodos
Métodos asíncronos e transicións
Todos os métodos da API son asíncronos e inician unha transición . Volven ao interlocutor en canto se inicia a transición pero antes de que remate . Ademais, ignorarase unha chamada de método nun compoñente en transición .
Consulte a nosa documentación de JavaScript para obter máis información .
constructor
Activa un elemento de pestana e un contenedor de contido. A pestana debería ter un atributo data-bs-target
ou, se se utiliza unha ligazón, un href
atributo dirixido a un nodo de contedores no 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>
mostrar
Selecciona a pestana indicada e mostra o seu panel asociado. Calquera outra pestana que se seleccionase anteriormente non se selecciona e o seu panel asociado queda oculto. Volve ao interlocutor antes de que se amosara o panel de pestanas (é dicir, antes de shown.bs.tab
que se produza o evento).
var someTabTriggerEl = document.querySelector('#someTabTrigger')
var tab = new bootstrap.Tab(someTabTriggerEl)
tab.show()
dispor
Destrúe a pestana dun elemento.
getInstance
Método estático que che permite obter a instancia da pestana asociada a un elemento DOM
var triggerEl = document.querySelector('#trigger')
var tab = bootstrap.Tab.getInstance(triggerEl) // Returns a Bootstrap tab instance
getOrCreateInstance
Método estático que che permite obter a instancia da pestana asociada a un elemento DOM ou crear unha nova no caso de que non se inicializou
var triggerEl = document.querySelector('#trigger')
var tab = bootstrap.Tab.getOrCreateInstance(triggerEl) // Returns a Bootstrap tab instance
Eventos
Cando se mostra unha nova pestana, os eventos desenvólvense na seguinte orde:
hide.bs.tab
(na pestana activa actual)show.bs.tab
(na pestana por mostrar)hidden.bs.tab
(na pestana activa anterior, a mesma que para ohide.bs.tab
evento)shown.bs.tab
(na pestana que acaba de mostrarse activa, a mesma que para oshow.bs.tab
evento)
Se xa non estaba activa ningunha pestana, os eventos hide.bs.tab
e hidden.bs.tab
non se activarán.
Tipo de evento | Descrición |
---|---|
show.bs.tab |
Este evento desenvólvese na mostra de pestanas, pero antes de que se mostrase a nova pestana. Use event.target e event.relatedTarget para orientar a pestana activa e a pestana activa anterior (se está dispoñible) respectivamente. |
shown.bs.tab |
Este evento desenvólvese na mostra de pestanas despois de que se mostrase unha pestana. Use event.target e event.relatedTarget para orientar a pestana activa e a pestana activa anterior (se está dispoñible) respectivamente. |
hide.bs.tab |
Este evento desenvólvese cando se quere mostrar unha nova pestana (e, polo tanto, debe ocultarse a pestana activa anterior). Use event.target e event.relatedTarget para orientar a pestana activa actual e a nova pestana que estará activa en breve, respectivamente. |
hidden.bs.tab |
Este evento desenvólvese despois de que se amose unha nova pestana (e polo tanto se oculta a pestana activa anterior). Use event.target e event.relatedTarget para apuntar á pestana activa anterior e á nova pestana activa, respectivamente. |
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
})