Reputation: 1
I have a simple layout with a header and two columns. The goal is that neither column should ever expand past the bottom of the screen, causing the whole page to be scrolled. Instead they should each scroll independently if their content requires. A minimalized example and fiddle are below.
<script src="https://cdn.tailwindcss.com"></script>
<div class="min-h-screen max-h-screen w-full bg-gray-400">
<div class="flex justify-center bg-gray-500">HEADER</div>
<div class="flex mb-4">
<div class="w-1/2 bg-gray-600">
<input type="text">
<div class="overflow-y-auto">
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
</div>
</div>
<div class="w-1/2 bg-gray-700">
<input type="text">
<div class="overflow-y-auto">
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
</div>
</div>
https://jsfiddle.net/z0qpm1vL/
Upvotes: 0
Views: 1832
Reputation: 553
This is how to keep your viewport scaling:
flex flex-col
on global container, grow overflow-hidden
on lists container and overflow-auto
on each list.
.as-console-wrapper { display: none !important }
<script src="https://cdn.tailwindcss.com"></script>
<div class="h-screen bg-gray-400 flex flex-col">
<div class="flex justify-center bg-gray-500">HEADER</div>
<div class="flex mb-4 grow overflow-hidden">
<div class="w-1/2 bg-gray-600 overflow-auto">
<input type="text">
<div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
</div>
</div>
<div class="w-1/2 bg-gray-700 overflow-auto">
<input type="text">
<div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
</div>
</div>
</div>
</div>
Upvotes: 1
Reputation: 1848
By each column you need to set fixed height to itself.
<link href="https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.2.19/tailwind.min.css" rel="stylesheet"/>
<div class="min-h-screen max-h-screen w-full bg-gray-400">
<div class="flex justify-center bg-gray-500">HEADER</div>
<div class="flex mb-4">
<div class="w-1/2 bg-gray-600">
<input type="text">
<div class="overflow-y-auto h-64">
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
<div>Column 1</div>
</div>
</div>
<div class="w-1/2 bg-gray-700">
<input type="text">
<div class="overflow-y-auto h-64">
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
<div>Column 2</div>
</div>
</div>
</div>
</div>
Upvotes: 2