How to create: vertical tab pages
Learn how to use CSS and JavaScript to create vertical tab page menus.
Vertical tab pages
Tab pages are very suitable for single-page web applications or web pages that can display different themes.
London
London is the capital city of England.
Paris
Paris is the capital of France.
Tokyo
Tokyo is the capital of Japan.
Create a vertically scrollable tab that can be switched
Step 1 - Add HTML:
<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> <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 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.
Step 2 - Add CSS:
Set the style for the button and the tab content:
* {box-sizing: border-box} /* Style the tab */ .tab { float: left; border: 1px solid #ccc; background-color: #f1f1f1; width: 30%; height: 300px; } /* Set the style for the button used to open the tab content */ .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; } /* Change the background color of the button when hovering */ .tab button:hover { background-color: #ddd; } /* Create the "active/current" tab button class */ .tab button.active { background-color: #ccc; } /* Set the style of the tab page content */ .tabcontent { float: left; padding: 0px 12px; border: 1px solid #ccc; width: 70%; border-left: none; height: 300px; }
Step 3 - 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 the "active" class 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 link that opens the tab page document.getElementById(cityName).style.display = "block"; evt.currentTarget.className += " active"; }
Related Pages
Tutorial:How to Create Horizontal Tabs