Simple HTML Tabs

This is a simple HTML tabbed content example, that does not use a plugin. It uses simple vanilla JavaScript which could be replaced with pure CSS3. The below code can be copied and pasted into any WordPress HTML Block. Page or any HTML file.

Tab One Content

Lorem ipsum dolor sit amet, consectetur adipiscing 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. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum

Tab Two Content

Lorem ipsum dolor sit amet, consectetur adipiscing 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. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum

Tab Three Content

Lorem ipsum dolor sit amet, consectetur adipiscing 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. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum

Tab Four Content

Lorem ipsum dolor sit amet, consectetur adipiscing 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. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum

The following shows the HTML used.


<div class="tab-container">
  <aside class="tab-nav">
    <ul class="tabbed">
      <li class="tab-btn active" data-tab="tabOne"> Tab One</li>
      <li class="tab-btn" data-tab="tabTwo">Tab Two</li>
      <li class="tab-btn" data-tab="tabThree">Tab Three</li>
      <li   class="tab-btn" data-tab="tabFour">Tab Four</li>
    </ul>
 </aside>

<div class="tabbed-container">
  <div class="tab-content open-tab" id="tabOne">
    <h2>Tab One Content</h2>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing 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. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p>
  </div>
  <div class="tab-content" id="tabTwo">
    <h2>Tab Two Content</h2>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing 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. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p>
  </div>
  <div class="tab-content" id="tabThree">
    <h2>Tab Three Content</h2>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing 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. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p>
  </div>
  <div class="tab-content" id="tabFour">
    <h2>Tab Four Content</h2>
   <p>Lorem ipsum dolor sit amet, consectetur adipiscing 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. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p>
  </div>
 </div>

</div>

Add a little JavaScript to switch the tabs


<script>
// create the function
const tabClick = ({ target }) => {
    const { dataset: { tab = '' }} = target;
    document.querySelectorAll('.tab-btn').forEach(t => t.classList.remove('active'));
    target.classList.add('active');
    document.querySelectorAll('.tab-content').forEach(t => t.classList.remove('open-tab'));
    document.querySelector(`#${tab}`).classList.add('open-tab'); 
};
// create a callback  
const switchTabs = () => {
  document.querySelectorAll('.tab-btn').forEach(tab => {
    tab.addEventListener('click', tabClick);
  })
};
//load the callback 
document.addEventListener('DOMContentLoaded', () => {
  switchTabs();
});
</script>

Throw in a little inline styling as needed

<style>

.tab-container {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    height: 33vw;
	width: 66%;
	padding: 1.5em;
	gap: 1em;
}

aside.tab-nav {
    display: flex;
	flex-basis: 30%;
    align-self: center;
}

.tabbed{
	padding: 0;
	list-style-type: none;
}

.tabbed li {
    padding: 0.5em;
    margin: .75em auto;
    font-weight: 300;
	text-align: center;
    border: 1px solid #bbb;
    border-radius: 5px;
}

li.tab-btn.active {
    background-color: #ccc;
    color: #000;
}

.tabbed-container{
	padding: 3em;
}

.tab-content{display: none;}

.tab-content.open-tab{display: block;}


</style>
«