Simple Native Accordion, CSS, JS
Content for first column.
Content for second column.
Content for third column.
Content for fourth column.
<div class="accordion">
<div class="accordion-item">
<button class="accordion-header">Header 1</button>
<div class="accordion-content">
Content for first column.
</div>
</div>
<div class="accordion-item">
<button class="accordion-header">Header 2</button>
<div class="accordion-content">
Content for second column.
</div>
</div>
<div class="accordion-item">
<button class="accordion-header">Header 3</button>
<div class="accordion-content">
Content for third column.
</div>
</div>
<div class="accordion-item">
<button class="accordion-header">Header 4</button>
<div class="accordion-content">
Content for fourth column.
</div>
</div>
</div>
<style>
.accordion {
width: 100%;
}
.accordion-item {
margin-bottom: 10px;
border: 1px solid #ccc;
border-radius: 5px;
overflow: hidden;
}
.accordion-header {
display: block;
background-color: #f5f5f5;
padding: 10px 20px;
cursor: pointer;
width: 100%;
border: none;
text-align: left;
font-size: 16px;
transition: background-color 0.3s;
outline: none;
}
.accordion-header:hover {
background-color: #ddd;
}
.accordion-content {
max-height: 0;
overflow: hidden;
transition: max-height 0.3s;
padding: 0 20px;
}
</style>
<script>
document.addEventListener('DOMContentLoaded', function() {
const accordionHeaders = document.querySelectorAll(".accordion-header");
accordionHeaders.forEach(header => {
header.addEventListener("click", function() {
// Toggle current content
const content = this.nextElementSibling;
if(content.style.maxHeight) {
content.style.maxHeight = null;
} else {
content.style.maxHeight = content.scrollHeight + "px";
}
// Close other contents
accordionHeaders.forEach(otherHeader => {
if(otherHeader !== header) {
otherHeader.nextElementSibling.style.maxHeight = null;
}
});
});
});
});
</script>