How to Create: Tabs
- Previous page Accordion
- Next page Vertical Tab
Learn how to create tabs using CSS and JavaScript.
Tabs
Tabs are perfect for single-page web applications or web pages that can display different topics:
London
London is the capital city of England.
Paris
Paris is the capital of France.
Tokyo
Tokyo is the capital of Japan.
Create a toggleable tab
Step 1 - Add HTML:
<!-- Tab links --> <div class="tab"> <button class="tablinks" onclick="openCity(event, 'London')">London</button> <button class="tablinks" onclick="openCity(event, 'Paris')">Paris</button> <button class="tablinks" onclick="openCity(event, 'Tokyo')">Tokyo</button> </div> <!-- Tab content --> <div id="London" class="tabcontent"> <h3>London</h3> <p>London is the capital city of England.</p> </div> <div id="Paris" class="tabcontent"> <h3>Paris</h3> <p>Paris is the capital of France.</p> </div> <div id="Tokyo" class="tabcontent"> <h3>Tokyo</h3> <p>Tokyo is the capital of Japan.</p> </div>
Create buttons to open specific tab content. All elements with class="tabcontent"
of <div>
Elements are all hidden by default (through CSS and JS). When the user clicks a button, it will open the tab content that matches the button.
Second step - Add CSS:
Set the style for buttons and tab content:
/* Set the style of the tab */ .tab { overflow: hidden; border: 1px solid #ccc; background-color: #f1f1f1; } /* Set the style of the button used to open tab content */ .tab button { background-color: inherit; float: left; border: none; outline: none; cursor: pointer; padding: 14px 16px; transition: 0.3s; } /* Change the background color of the button on hover */ .tab button:hover { background-color: #ddd; } /* Create the active/current tab link class */ .tab button.active { background-color: #ccc; } /* Set the style of tab content */ .tabcontent { display: none; padding: 6px 12px; border: 1px solid #ccc; border-top: none; }
Third step - Add JavaScript:
function openCity(evt, cityName) { // Declare all variables var i, tabcontent, tablinks; // Get all elements with class="tabcontent" and hide them tabcontent = document.getElementsByClassName("tabcontent"); for (i = 0; i < tabcontent.length; i++) { tabcontent[i].style.display = "none"; } // Get all elements with class="tablinks" and remove class "active" tablinks = document.getElementsByClassName("tablinks"); for (i = 0; i < tablinks.length; i++) { tablinks[i].className = tablinks[i].className.replace(" active", ""); } // Show the current tab page and add the "active" class to the button that opens the tab page document.getElementById(cityName).style.display = "block"; evt.currentTarget.className += " active"; }
Fade in tab page
To fade in the tab page content, add the following CSS:
.tabcontent { animation: fadeEffect 1s; /* Fade in and out effect lasts for 1 second */ } /* Transition from zero opacity to fully opaque */ @keyframes fadeEffect { from {opacity: 0;} to {opacity: 1;} }
Default tab page display
To open a specific tab page when the page is loaded, use JavaScript to "click" the specified tab button:
<button class="tablinks" onclick="openCity(event, 'London')" id="defaultOpen">London</button> <script> // Click the element with id="defaultOpen" document.getElementById("defaultOpen").click(); </script>
Close tab page
If you want to close a specific tab page, please use JavaScript to hide the tab page by clicking the button:
<!-- Click the <span> element to close the tab page --> <div id="London" class="tabcontent"> <h3>London</h3> <p>London is the capital city of England.</p> <span onclick="this.parentElement.style.display='none'">x</span> </div>
Related pages
Tutorial:How to create vertical tabs
- Previous page Accordion
- Next page Vertical Tab