JSFiddle - React, Tailwind, and code Playground
by Fabio Dan
HTML
<div class="container">
<header></header>
<section></section>
<section class="height-100"></section>
<div class="grid">
<table>
<thead>
<tr class="week">
<td></td>
<td>Mon</td>
<td>Tue</td>
<td>Wed</td>
<td>Thu</td>
<td>Fri</td>
<td>Sat</td>
<td>Sun</td>
<td>Mon</td>
<td>Tue</td>
<td>Wed</td>
<td>Thu</td>
<td>Fri</td>
<td>Sat</td>
<td>Sun</td>
</tr>
</thead>
<tbody>
<tr>
<td class="time">6:00 to 7:00am</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
</tr>
<tr>
<td class="time">6:00 to 7:00am</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
</tr>
<tr>
<td class="time">6:00 to 7:00am</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
</tr>
<tr>
<td class="time">6:00 to 7:00am</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
<td>£4.50</td>
...
CSS
html {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
*,
*:before,
*:after {
-webkit-box-sizing: inherit;
-moz-box-sizing: inherit;
box-sizing: inherit;
}
body {
margin: 0;
}
.container {
background: white;
/* width: 320px; */
height: 564px;
}
header {
background: #EEE;
height: 70px;
margin: 0 0 24px 0;
}
section {
background: #EEE;
height: 170px;
margin: 0 16px 16px 16px;
}
.height-100 {
height: 100px;
}
.grid {
/* width: 320px; */
overflow: scroll;
height: 570px;
position: relative;
}
table {
border-collapse: collapse;
}
td {
margin: 0;
}
table td {
width: 150px;
text-align: center;
padding: 8px 16px;
height: 64px;
}
thead td {
position: sticky;
top: 0;
left: auto;
background: white;
height: 64px;
z-index: 100;
border-bottom: solid 1px black;
}
.time {
position: sticky;
top: auto;
left: 0;
background: white;
z-index: 0;
border-right: solid 1px black;
}
footer {
border: solid 1px black;
position: sticky;
bottom: 0;
left: 0;
background: white;
padding: 16px;
}