Clases CSS Tab
Las pestañas (tabs) se usan para separar el contenido en diferentes paneles donde cada panel se puede ver uno a la vez.
Clase |
Descripción |
.nav nav-tabs |
Crea pestañas de navegación |
.nav nav-pills |
Crea píldoras de navegación |
.nav-item |
Crea elementos de pestaña |
.nav-link |
Enlaces de estilos dentro de la pestaña de navegación |
.nav-justified |
Hace que las pestañas / píldoras de navegación tengan el mismo ancho que sus padres, en pantallas de más de 768 píxeles. En pantallas más pequeñas, las pestañas de navegación están apiladas |
.tab-content |
Junto con .tab-pane y data-toggle=»tab», hace que la pestaña se pueda alternar |
.tab-pane |
Junto con .tab-content y data-toggle=»tab», hace que la pestaña se pueda alternar |
Ejm
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container mt-3">
<h2>Toggleable Tabs</h2>
<br>
<!-- Nav tabs -->
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" data-toggle="tab" href="#home">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#menu1">Menu 1</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#menu2">Menu 2</a>
</li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div id="home" class="container tab-pane active"><br>
<h3>HOME</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
</div>
<div id="menu1" class="container tab-pane fade"><br>
<h3>Menu 1</h3>
<p>Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
<div id="menu2" class="container tab-pane fade"><br>
<h3>Menu 2</h3>
<p>Sed ut perspiciatis unde omnis iste natus error sit
voluptatem accusantium doloremque laudantium, totam rem aperiam.</p>
</div>
</div>
</div>
</body>
</html>
Atributos vía data-*
Agrega data-toggle=»tab» a cada pestaña, y agrega una clase .tab-pane con un ID único para cada pestaña y envuélvelas en una clase .tab-content.
Ejm
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" data-toggle="tab" href="#home">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#menu1">Menu 1</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#menu2">Menu 2</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane active container" id="home">...</div>
<div class="tab-pane container" id="menu1">...</div>
<div class="tab-pane container" id="menu2">...</div>
</div>
Ejm completo
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container mt-3">
<h2>Toggleable Tabs</h2>
<br>
<!-- Nav tabs -->
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" data-toggle="tab" href="#home">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#menu1">Menu 1</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#menu2">Menu 2</a>
</li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div id="home" class="container tab-pane active"><br>
<h3>HOME</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
</div>
<div id="menu1" class="container tab-pane fade"><br>
<h3>Menu 1</h3>
<p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
<div id="menu2" class="container tab-pane fade"><br>
<h3>Menu 2</h3>
<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.</p>
</div>
</div>
</div>
</body>
</html>
Vía Javascript
Habilitar manualmente vía Javascript de la siguiente manera.
$('.nav-tabs a').click(function(){
$(this).tab('show');
})
$('.nav-tabs a[href="#home"]').tab('show')
$('.nav-tabs a:first').tab('show')
$('.nav-tabs a:last').tab('show')
$('.nav-tabs li:eq(3) a').tab('show')
Métodos
La siguiente tabla lista todos los posibles métodos
Método |
Descripción |
.tab(«show») |
Muestra la pestaña |
Eventos
La siguiente tabla muestra todos los posibles eventos
Evento |
Descripción |
show.bs.tab |
Se produce cuando la pestaña está a punto de mostrarse |
shown.bs.tab |
Se produce cuando la pestaña se muestra completamente (después de que se hayan completado las transiciones CSS) |
hide.bs.tab |
Se produce cuando la pestaña está a punto de ocultarse |
hidden.bs.tab |
Se produce cuando la pestaña está completamente oculta (después de que se hayan completado las transiciones CSS) |
Sugerencia: Usa el código jQuery event.target y event.relatedTarget para obtener la pestaña activa y la pestaña activa anterior.
Ejm
$('.nav-tabs a').on('shown.bs.tab', function(event){
var x = $(event.target).text(); var y = $(event.relatedTarget).text(); });