Tabs Miniproject

Frontend ClubFrontend Club
2 min read

Aprende a crear pestañas sencillas, usando HTML, CSS, y JavaScript.

Ejemplo:

Marcado HTML

<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">
    <span onclick="this.parentElement.style.display='none'" class="topright">&times</span>
    <h3>Sucre</h3>
    <p>Sucre es la ciudad capital de Bolivia.</p>
</div>

<div id="Lima" class="tabcontent">
    <span onclick="this.parentElement.style.display='none'" class="topright">&times</span>
    <h3>Lima</h3>
    <p>Lima es la ciudad capital de Perú.</p>
</div>

<div id="Bogota" class="tabcontent">
    <span onclick="this.parentElement.style.display='none'" class="topright">&times</span>
    <h3>Bogotá</h3>
    <p>Bogotá es la ciudad capital de Colombia.</p>
</div>

Estilos CSS

/* Estilos del tab */
.tab {
    overflow: hidden;
    border: 1px solid #ccc;
    background-color: #f1f1f1;
}

/* Estilos del botón dentro del tab */
.tab button {
    background-color: inherit;
    float: left;
    border: none;
    outline: none;
    cursor: pointer;
    padding: 14px 16px;
    transition: 0.3s;
    font-size: 17px;
}

/* Cambia color de fondo del botón con hover */
.tab button:hover {
    background-color: #ddd;
}

/* Crea una clase tablink active/current */
.tab button.active {
    background-color: #ccc;
}

/* Estilos contenido del tab */
.tabcontent {
    display: none;
    padding: 6px 12px;
    border: 1px solid #ccc;
    border-top: none;
}

/* Estilos botón cerrar */
.topright {
    float: right;
    cursor: pointer;
    font-size: 28px;
}

.topright:hover {
    color: red;
}

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";
}

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.