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');
});