How to create Tabs using HTML, CSS, and JAVASCRIPT

HTML
<div class="container">
    <div class="tab_box">
        <button class="tab_btn active">Home</button>
        <button class="tab_btn">About</button>
        <button class="tab_btn">Blogs</button>
        <button class="tab_btn">Contact us</button>
        <div class="line"></div>
    </div>
    <div class="content_box">
        <div class="content active">
            <h2>Home</h2>
            <p>
                Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
                tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
                quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
                consequat.
            </p>
        </div>
        <div class="content">
            <h2>About</h2>
            <p>
                Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
                tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
                quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
                consequat.
            </p>
        </div>
        <div class="content">
            <h2>Blogs</h2>
            <p>
                Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
                tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
                quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
                consequat.
            </p>
        </div>
        <div class="content">
            <h2>Contact us</h2>
            <p>
                Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
                tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
                quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
                consequat.
            </p>
        </div>
    </div>
</div>
CSS
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800;900&display=swap');
*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Poppins',sans-serif;
}
body{
    background-color:#deeeff;
    display:flex;
    justify-content:center;
    align-items:center;
    height:100vh;
}
.container{
    width:600px;
    background-color:white;
    padding:30px;
    box-shadow:0 2px 16px rgba(0,0,0,.1);
    border-radius:20px;
}
.tab_box{
    width:100%;
    display:flex;
    justify-content:space-around;
    align-items:center;
    border-bottom:2px solid rgb(229,229,229);
    position:relative;
}
.tab_box .tab_btn{
    font-size:18px;
    font-weight:600;
    color:#919191;
    background:none;
    border:none;
    padding:18px;
    cursor:pointer;
}
.tab_box .tab_btn.active{
    color:#7360ff;
}   
.content_box{
    padding:20px;
}
.content_box .content{
    display:none;
    animation:moving .5s ease;
}
@keyframes moving{
    from{ transform:translateX(50px); opacity:0; }
    to{ transform:translateX(0px); opacity:1; }
}
.content_box .content.active{
    display:block;
}
.content_box .content h2{
    margin-bottom:10px;
}

.line{
    position:absolute;
    top:62px;
    left:17px;
    width:90px;
    height:5px;
    background-color:#7360ff;
    border-radius:10px;
    transition:all .3s ease-in-out;
}
JS
const tabs = document.querySelectorAll('.tab_btn');
const all_content = document.querySelectorAll('.content')

tabs.forEach((tab,index)=>{
    tab.addEventListener('click',(e)=>{
        tabs.forEach(tab=>{ tab.classList.remove('active')})
        tab.classList.add('active');
        
        var line = document.querySelector('.line');
        line.style.width = e.target.offsetWidth + "px";
        line.style.left  = e.target.offsetLeft + "px";
        
        all_content.forEach(content=>{ content.classList.remove('active') });
        all_content[index].classList.add('active');
    })
})

/*
    All the credits : https://www.youtube.com/watch?v=nlOmgBHnLqQ
*/

Autor: Leonard

Publicado: 09/05/2022

Compartir Elemento Web

Donar a Compositu
Otras formas de ayudar
  • Compártelo en tus redes sociales.
  • Recomienda los elementos.
  • Regístrate Aquí
  • Deja tu comentario agradeciendo el aporte.

Descarga el código completo del Elemento Web y archivos necesarios (imágenes, librerias, plugins, frameword, etc)

Deja tu comentario