1

How to make tabs in CSS. Tabs for website

 3 years ago
source link: https://dev.to/kunaal438/how-to-make-tabs-in-css-tabs-for-website-1bc4
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Hello, glad you are here. I am kunaal and today we will make tabs for website with CSS and JS. You can see demo below.

Video Tutorial -

If you find this article hard or for better explanation. You can watch video tutorial.

If you like the video tutorial. Please consider subscribing my youtube channel.

Let's code

Make three files index.html, style.css and app.js. Write basic HTML structure and link stylesheet.

After that inside body tag write this.

<div class="tabs">
        <span class="active"></span>
        <p class="tab">01</p>
        <p class="tab">02</p>
        <p class="tab">03</p>
        <p class="tab">04</p>
        <p class="tab">05</p>
    </div>

    <div class="content">
        <div class="page">
            <h1 class="title">tabs in css</h1>
            <hr>
            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Beatae, blanditiis. Eos suscipit dolorum consequuntur voluptatem veritatis reiciendis atque harum deleniti soluta, reprehenderit quos odit obcaecati sit, nulla eum, dolores sed hic exercitationem dicta qui laboriosam quisquam maxime! Aliquid ut reprehenderit quisquam vel ipsam quam architecto ad sunt, alias similique quod nesciunt modi non voluptatum soluta maiores hic debitis dolore quibusdam minus porro. Ex quae veritatis dignissimos reprehenderit voluptates fuga, minus voluptate repellendus facere doloremque doloribus, nisi quod soluta accusamus deleniti, delectus voluptas officia saepe dolore in. Sapiente ratione totam minima quam perferendis praesentium ad doloribus reiciendis. Blanditiis debitis eligendi officia amet accusantium sed pariatur quae rerum facere, repudiandae tempora distinctio aperiam cum itaque deserunt temporibus totam ducimus laudantium quia! Quasi ut perferendis aut provident harum in rerum praesentium consectetur! Ullam ex sit itaque nobis deserunt repellat delectus, voluptas in, distinctio neque molestias quibusdam, pariatur animi nam. Fugiat fuga aut hic sequi provident blanditiis, nesciunt, cumque harum ullam voluptas veniam magni? Et laboriosam voluptatum sapiente perspiciatis, culpa molestias commodi, architecto iure libero inventore voluptatibus non ut delectus fuga? Explicabo officiis excepturi totam distinctio quae, itaque veniam perferendis voluptatibus minima, natus quidem soluta pariatur ipsam iure, esse dolores ab reprehenderit laudantium harum?</p>
        </div>
        <div class="page">
            <h1 class="title">tabs 2</h1>
            <hr>
            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Beatae, blanditiis. Eos suscipit dolorum consequuntur voluptatem veritatis reiciendis atque harum deleniti soluta, reprehenderit quos odit obcaecati sit, nulla eum, dolores sed hic exercitationem dicta qui laboriosam quisquam maxime! Aliquid ut reprehenderit quisquam vel ipsam quam architecto ad sunt, alias similique quod nesciunt modi non voluptatum soluta maiores hic debitis dolore quibusdam minus porro. Ex quae veritatis dignissimos reprehenderit voluptates fuga, minus voluptate repellendus facere doloremque doloribus, nisi quod soluta accusamus deleniti, delectus voluptas officia saepe dolore in. Sapiente ratione totam minima quam perferendis praesentium ad doloribus reiciendis. Blanditiis debitis eligendi officia amet accusantium sed pariatur quae rerum facere, repudiandae tempora distinctio aperiam cum itaque deserunt temporibus totam ducimus laudantium quia! Quasi ut perferendis aut provident harum in rerum praesentium consectetur! Ullam ex sit itaque nobis deserunt repellat delectus, voluptas in, distinctio neque molestias quibusdam, pariatur animi nam. Fugiat fuga aut hic sequi provident blanditiis, nesciunt, cumque harum ullam voluptas veniam magni? Et laboriosam voluptatum sapiente perspiciatis, culpa molestias commodi, architecto iure libero inventore voluptatibus non ut delectus fuga? Explicabo officiis excepturi totam distinctio quae, itaque veniam perferendis voluptatibus minima, natus quidem soluta pariatur ipsam iure, esse dolores ab reprehenderit laudantium harum?</p>
        </div>
        <div class="page">
            <h1 class="title">tabs 3</h1>
            <hr>
            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Beatae, blanditiis. Eos suscipit dolorum consequuntur voluptatem veritatis reiciendis atque harum deleniti soluta, reprehenderit quos odit obcaecati sit, nulla eum, dolores sed hic exercitationem dicta qui laboriosam quisquam maxime! Aliquid ut reprehenderit quisquam vel ipsam quam architecto ad sunt, alias similique quod nesciunt modi non voluptatum soluta maiores hic debitis dolore quibusdam minus porro. Ex quae veritatis dignissimos reprehenderit voluptates fuga, minus voluptate repellendus facere doloremque doloribus, nisi quod soluta accusamus deleniti, delectus voluptas officia saepe dolore in. Sapiente ratione totam minima quam perferendis praesentium ad doloribus reiciendis. Blanditiis debitis eligendi officia amet accusantium sed pariatur quae rerum facere, repudiandae tempora distinctio aperiam cum itaque deserunt temporibus totam ducimus laudantium quia! Quasi ut perferendis aut provident harum in rerum praesentium consectetur! Ullam ex sit itaque nobis deserunt repellat delectus, voluptas in, distinctio neque molestias quibusdam, pariatur animi nam. Fugiat fuga aut hic sequi provident blanditiis, nesciunt, cumque harum ullam voluptas veniam magni? Et laboriosam voluptatum sapiente perspiciatis, culpa molestias commodi, architecto iure libero inventore voluptatibus non ut delectus fuga? Explicabo officiis excepturi totam distinctio quae, itaque veniam perferendis voluptatibus minima, natus quidem soluta pariatur ipsam iure, esse dolores ab reprehenderit laudantium harum?</p>
        </div>
        <div class="page">
            <h1 class="title">tabs 4</h1>
            <hr>
            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Beatae, blanditiis. Eos suscipit dolorum consequuntur voluptatem veritatis reiciendis atque harum deleniti soluta, reprehenderit quos odit obcaecati sit, nulla eum, dolores sed hic exercitationem dicta qui laboriosam quisquam maxime! Aliquid ut reprehenderit quisquam vel ipsam quam architecto ad sunt, alias similique quod nesciunt modi non voluptatum soluta maiores hic debitis dolore quibusdam minus porro. Ex quae veritatis dignissimos reprehenderit voluptates fuga, minus voluptate repellendus facere doloremque doloribus, nisi quod soluta accusamus deleniti, delectus voluptas officia saepe dolore in. Sapiente ratione totam minima quam perferendis praesentium ad doloribus reiciendis. Blanditiis debitis eligendi officia amet accusantium sed pariatur quae rerum facere, repudiandae tempora distinctio aperiam cum itaque deserunt temporibus totam ducimus laudantium quia! Quasi ut perferendis aut provident harum in rerum praesentium consectetur! Ullam ex sit itaque nobis deserunt repellat delectus, voluptas in, distinctio neque molestias quibusdam, pariatur animi nam. Fugiat fuga aut hic sequi provident blanditiis, nesciunt, cumque harum ullam voluptas veniam magni? Et laboriosam voluptatum sapiente perspiciatis, culpa molestias commodi, architecto iure libero inventore voluptatibus non ut delectus fuga? Explicabo officiis excepturi totam distinctio quae, itaque veniam perferendis voluptatibus minima, natus quidem soluta pariatur ipsam iure, esse dolores ab reprehenderit laudantium harum?</p>
        </div>
        <div class="page">
            <h1 class="title">like, share, subscribe</h1>
            <hr>
            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Beatae, blanditiis. Eos suscipit dolorum consequuntur voluptatem veritatis reiciendis atque harum deleniti soluta, reprehenderit quos odit obcaecati sit, nulla eum, dolores sed hic exercitationem dicta qui laboriosam quisquam maxime! Aliquid ut reprehenderit quisquam vel ipsam quam architecto ad sunt, alias similique quod nesciunt modi non voluptatum soluta maiores hic debitis dolore quibusdam minus porro. Ex quae veritatis dignissimos reprehenderit voluptates fuga, minus voluptate repellendus facere doloremque doloribus, nisi quod soluta accusamus deleniti, delectus voluptas officia saepe dolore in. Sapiente ratione totam minima quam perferendis praesentium ad doloribus reiciendis. Blanditiis debitis eligendi officia amet accusantium sed pariatur quae rerum facere, repudiandae tempora distinctio aperiam cum itaque deserunt temporibus totam ducimus laudantium quia! Quasi ut perferendis aut provident harum in rerum praesentium consectetur! Ullam ex sit itaque nobis deserunt repellat delectus, voluptas in, distinctio neque molestias quibusdam, pariatur animi nam. Fugiat fuga aut hic sequi provident blanditiis, nesciunt, cumque harum ullam voluptas veniam magni? Et laboriosam voluptatum sapiente perspiciatis, culpa molestias commodi, architecto iure libero inventore voluptatibus non ut delectus fuga? Explicabo officiis excepturi totam distinctio quae, itaque veniam perferendis voluptatibus minima, natus quidem soluta pariatur ipsam iure, esse dolores ab reprehenderit laudantium harum?</p>
        </div>
    </div>
Enter fullscreen modeExit fullscreen mode
*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body{
    width: 100%;
    font-family: 'roboto', sans-serif;
    overflow: hidden;
}

.tabs{
    position: relative;
    width: 100%;
    height: 60px;
    display: flex;
    background: #232323;
    justify-content: center;
    align-items: center;
}

.tab{
    width: 20%;
    height: 100%;
    text-align: center;
    line-height: 60px;
    font-size: 20px;
    color: #b9b9b9;
    transition: .5s;
}

.tab:hover{
    background: #373737;
}

.tabs .active{
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    height: 60px;
    width: 20%;
    border-bottom: 4px solid #fff;
    transition: 1s;
}

.content{
    position: relative;
    width: 500vw;
    min-height: calc(100vh - 60px);
    height: fit-content;
    display: grid;
    grid-template-columns: repeat(5, 100vw);
    transition: .5s;
}

.page{
    position: relative;
    width: 100%;
    height: 100%;
    background: url(https://raw.githubusercontent.com/kunaal438/tabs-in-css/master/img/img1.jpeg);
    background-size: cover;
    background-position: center;
    padding: 50px;
}

.page:nth-child(2){
    background: url(https://raw.githubusercontent.com/kunaal438/tabs-in-css/master/img/img2.jpeg);
    background-size: cover;
}

.page:nth-child(3){
    background: url(https://raw.githubusercontent.com/kunaal438/tabs-in-css/master/img/img3.jpeg);
    background-size: cover;
}

.page:nth-child(4){
    background: url(https://raw.githubusercontent.com/kunaal438/tabs-in-css/master/img/img4.jpeg);
    background-size: cover;
}

.page:nth-child(5){
    background: url(https://raw.githubusercontent.com/kunaal438/tabs-in-css/master/img/img5.jpeg);
    background-size: cover;
}

.page::before{
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    background: #232323;
    opacity: .8;
}

.page .title,
.page hr,
.page p{
    position: relative;
    z-index: 2;
}

.title{
    color: #fff;
    text-transform: capitalize;
    font-size: 50px;
}

hr{
    margin: 20px 0;
}

.page p{
    color: #fff;
    font-weight: 300;
    margin-top: 40px;
    line-height: 25px;
}
Enter fullscreen modeExit fullscreen mode

And some little JS.

const tabs = [...document.querySelectorAll('.tab')];
const pageContainer = document.querySelector('.content');
const activeSpan = document.querySelector('.tabs .active');

tabs.forEach((item, i) => {
    item.addEventListener('click', () => {
        pageContainer.style.marginLeft = `-${i * 100}%`;
        activeSpan.style.left = `${i * 20}%`;
    })
})
Enter fullscreen modeExit fullscreen mode

I hope you understood everything. If you have any doubt or you find any mistake that I made or you have any suggestion feel free to ask me in comment.

If you are interested in programming and want to know how I a 15yr old teen do coding make these design. You can follow me on my Instagram. I am also planning to post my game development stuff on Instagram.

Souce Code, My youtube Channel, Instagram


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK