Here ya go, with some cleaned up semantics and simplified used of good ‘ol fashioned box model. Have a great weekend!
body,
html {
height: 100%;
width: 100%;
margin: 0;
}
.header,
.footer {
background-color: grey;
font-size: 18px;
color: blue;
}
.content {
background-color: violet;
}
.data-grid {
max-height: 200px;
table-layout: fixed;
width: 100%;
border-collapse: collapse;
}
.data-grid th:not(:first-child), .data-grid td:not(:first-child) {
border-left: gray 1px solid;
}
.data-grid thead {
display: table;
width: 100%;
table-layout: fixed;
background-color: lightblue;
width: calc(100% - 17px); /* Average scrollbar width to keep columns aligned + border width */
}
.data-grid tbody tr {
display:table;
width:100%;
table-layout:fixed
}
.data-grid tbody {
display: block;
height: 200px;
width: 100%;
overflow-y: scroll;
overflow-x: hidden;
}
<div class="header">Table Header Here</div>
<div class="content">
<table class="data-grid">
<thead>
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
</tr>
</thead>
<tbody>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
<tr>
<td> Data1-1</td>
<td> Data1-2</td>
<td> Data1-3</td>
</tr>
</tbody>
</table>
</div>
<div class="footer">Table Footer Here</div>