Vertical Tabs

Frontend ClubFrontend Club
2 min read

Crea una pestaña vertical paso a paso, usando HTML, CSS y JavaScript.

Ejemplo:

Marcado HTML

<h2>Pestañas verticales</h2>
<p>Haz clic en los botones dentro de la pestaña del menú:</p>

<div class="tab">
    <button class="tablinks" onclick="openCity(event, 'Sucre')" id="defaultOpen">Sucre</button>
    <button class="tablinks" onclick="openCity(event, 'Lima')">Lima</button>
    <button class="tablinks" onclick="openCity(event, 'Bogota')">Bogotá</button>
</div>

<div id="Sucre" class="tabcontent">
    <h3>Sucre</h3>
    <p>Sucre es la ciudad capital de Bolivia.</p>
</div>

<div id="Lima" class="tabcontent">
    <h3>Lima</h3>
    <p>Lima es la ciudad capital de Perú.</p>
</div>

<div id="Bogota" class="tabcontent">
    <h3>Bogotá</h3>
    <p>Bogotá es la ciudad capital de Colombia.</p>
</div>

Estilos CSS

/* Estilos tab */
.tab {
    float: left;
    border: 1px solid #ccc;
    background-color: #f1f1f1;
    width: 30%;
    height: 300px;
}

/* Estilos boton dentro del tab */
.tab button {
    display: block;
    background-color: inherit;
    color: black;
    padding: 22px 16px;
    width: 100%;
    border: none;
    outline: none;
    text-align: left;
    cursor: pointer;
    transition: 0.3s;
    font-size: 17px;
}

/* Cambiar color de fondo de botones con hover */
.tab button:hover {
    background-color: #ddd;
}

/* Crea una clase active/current "botón tab" */
.tab button.active {
    background-color: #ccc;
}

/* Estilos contenido tab */
.tabcontent {
    float: left;
    padding: 0px 12px;
    border: 1px solid #ccc;
    width: 70%;
    border-left: none;
    height: 300px;
}

Código JavaScript

function openCity(evt, cityName) {
    var i, tabcontent, tablinks;
    tabcontent = document.getElementsByClassName("tabcontent");
    for (i = 0; i < tabcontent.length; i++) {
        tabcontent[i].style.display = "none";
    }
    tablinks = document.getElementsByClassName("tablinks");
    for (i = 0; i < tablinks.length; i++) {
        tablinks[i].className = tablinks[i].className.replace(" active", "");
    }
    document.getElementById(cityName).style.display = "block";
    evt.currentTarget.className += " active";
}

// Obten el elemento con id="defaultOpen" y haz clic
document.getElementById("defaultOpen").click();

Referencias

El contenido de este artículo es una inspiración y traducción de:


"La mejor manera de aprender a programar es practicando todos los días"

0
Subscribe to my newsletter

Read articles from Frontend Club directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Frontend Club
Frontend Club

La mejor manera de aprender a programar es practicando todos los días.