JSFiddle - React, Tailwind, and code Playground

by TheFiddler

HTML

<div class="wrapper">
  <div class="row header">
    Header
  </div>
  <div class="row content">

    <div class="scroll-panel">
      <div class="item">
        <div class="item-body"><img src="https://placehold.it/50x1060" alt="Item 1"><br>More Content</div>
        <div class="item-sticky-footer">Bottom of Column</div>
      </div>
      <div class="item">
        <div class="item-body">
          <img src="https://placehold.it/50x340" alt="Item 2">
        </div>
        <div class="item-sticky-footer">Bottom of Column</div>
      </div>
      <div class="item">
        <div class="item-body">
          <img src="https://placehold.it/50x350" alt="Item 3">
        </div>
        <div class="item-sticky-footer">Bottom of Column</div>
      </div>
      <div class="item">
        <div class="item-body">
          <img src="https://placehold.it/50x460" alt="Item 4">
        </div>
        <div class="item-sticky-footer">Bottom of Column</div>
      </div>
      <div class="item">
        <div class="item-body">
          <img src="https://placehold.it/50x460" alt="Item 5">
        </div>
        <div class="item-sticky-footer">Bottom of Column</div>
      </div>
    </div>

  </div>
  <div class="row footer">
    Footer
  </div>
</div>

CSS

html,
body {
  height: 100%;
  margin: 0
}

.wrapper {
  display: flex;
  flex-flow: column;
  height: 100%;
}

.wrapper .row {
  border: 1px dotted grey;
}

.wrapper .row.header {
  flex: 0 1 auto;
}

.wrapper .row.content {
  flex: 1 1 auto;
}

.wrapper .row.footer {
  flex: 0 1 40px;
}

.scroll-panel {
  display: flex;
  border: 2px dashed rgba(114, 186, 94, 0.35);
  overflow: scroll;
  flex-wrap: nowrap;
  height: calc(100vh - 42px);
  max-height: calc(100vh - 42px);
  -webkit-overflow-scrolling: touch;
}

.item {
  margin-right: 10px;
  width: 500px;
  border: 1px solid red;
  overflow: hidden;
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
}

.item-body {
  flex-grow: 1;
}

.item-sticky-footer {
  flex-shrink: 0;
  flex-basis: 60px;
  align-self: flex-end;
  bottom: 30px;
  height: 60px;
}