JSFiddle - React, Tailwind, and code Playground
by ponyspy
HTML
<div class="columns">
<div class="column_item">
<div class="section">
<div class="column_title">title 1</div>
<div class="column_body">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quasi possimus excepturi a, saepe aliquam quia rem cupiditate sit dicta commodi quos nam necessitatibus, ipsum fugit officia corporis culpa nisi reprehenderit.</div>
</div>
</div>
<div class="column_item">
<div class="section">
<div class="column_title">title 2</div>
<div class="column_body">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quas ab et asperiores rerum quae recusandae cumque debitis est numquam excepturi, tempora voluptate, alias dicta qui. Iusto modi vel, fugiat cupiditate.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. At quod, ex, neque cum rem autem veniam reprehenderit, dolores nihil voluptate porro. Delectus recusandae, labore provident rem minima quam mollitia at.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laborum accusamus, beatae quas nulla eum minima recusandae rerum soluta dolorem corporis tenetur saepe qui nemo impedit placeat. Maxime voluptate ut consectetur.</p>
</div>
</div>
<div class="section">
<div class="column_title">title 2</div>
<div class="column_body">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quas ab et asperiores rerum quae recusandae cumque debitis est numquam excepturi, tempora voluptate, alias dicta qui. Iusto modi vel, fugiat cupiditate.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. At quod, ex, neque cum rem autem veniam reprehenderit, dolores nihil voluptate porro. Delectus recusandae, labore provident rem minima quam mollitia at.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laborum accusamus, beatae quas nulla eum minima recusandae rerum soluta dolorem corporis tenetur saepe qui nemo impedit placeat. Maxime...
CSS
body, html{
margin: 0;
padding: 0;
height:100%;
}
.columns {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end;
background-color: red;
}
.column_item {
width: 100%;
border-top: 1px solid black;
display: flex;
flex-direction: row;
}
.column_item.active {
margin-bottom: auto;
height: 100%;
overflow: scroll;
}
.column_body {
display: none;
}
.column_item.active .column_body {
display: block;
flex-grow: 1;
overflow: auto;
/* for Firefox */
min-height: 0;
}
.section {
margin: 10px;
flex-grow: 1;
display: flex;
flex-direction: column;
/* for Firefox */
min-height: 0;
}
JavaScript
$('.column_item').on('click', function() {
$('.column_item').removeClass('active').filter(this).addClass('active');
});