Another approach is to wrap your table in a scrollable element and set the header cells to stick to the top.
The advantage of this approach is that you don't have to change the display on tbody and you can leave it to the browser to calculate column width while keeping the header cell widths in line with the data cell column widths.
/* Set a fixed scrollable wrapper */_x000D_
.tableWrap {_x000D_
height: 200px;_x000D_
border: 2px solid black;_x000D_
overflow: auto;_x000D_
}_x000D_
/* Set header to stick to the top of the container. */_x000D_
thead tr th {_x000D_
position: sticky;_x000D_
top: 0;_x000D_
}_x000D_
_x000D_
/* If we use border,_x000D_
we must use table-collapse to avoid_x000D_
a slight movement of the header row */_x000D_
table {_x000D_
border-collapse: collapse;_x000D_
}_x000D_
_x000D_
/* Because we must set sticky on th,_x000D_
we have to apply background styles here_x000D_
rather than on thead */_x000D_
th {_x000D_
padding: 16px;_x000D_
padding-left: 15px;_x000D_
border-left: 1px dotted rgba(200, 209, 224, 0.6);_x000D_
border-bottom: 1px solid #e8e8e8;_x000D_
background: #ffc491;_x000D_
text-align: left;_x000D_
/* With border-collapse, we must use box-shadow or psuedo elements_x000D_
for the header borders */_x000D_
box-shadow: 0px 0px 0 2px #e8e8e8;_x000D_
}_x000D_
_x000D_
/* Basic Demo styling */_x000D_
table {_x000D_
width: 100%;_x000D_
font-family: sans-serif;_x000D_
}_x000D_
table td {_x000D_
padding: 16px;_x000D_
}_x000D_
tbody tr {_x000D_
border-bottom: 2px solid #e8e8e8;_x000D_
}_x000D_
thead {_x000D_
font-weight: 500;_x000D_
color: rgba(0, 0, 0, 0.85);_x000D_
}_x000D_
tbody tr:hover {_x000D_
background: #e6f7ff;_x000D_
}
_x000D_
<div class="tableWrap">_x000D_
<table>_x000D_
<thead>_x000D_
<tr>_x000D_
<th><span>Month</span></th>_x000D_
<th>_x000D_
<span>Event</span>_x000D_
</th>_x000D_
<th><span>Action</span></th>_x000D_
</tr>_x000D_
</thead>_x000D_
<tbody>_x000D_
<tr>_x000D_
<td>January</td>_x000D_
<td>AAA</td>_x000D_
<td><span>Invite | Delete</span></td>_x000D_
</tr>_x000D_
<tr>_x000D_
<td>February. An extra long string.</td>_x000D_
<td>AAA</td>_x000D_
<td><span>Invite | Delete</span></td>_x000D_
</tr>_x000D_
<tr>_x000D_
<td>March</td>_x000D_
<td>AAA</td>_x000D_
<td><span>Invite | Delete</span></td>_x000D_
</tr>_x000D_
<tr>_x000D_
<td>April</td>_x000D_
<td>AAA</td>_x000D_
<td><span>Invite | Delete</span></td>_x000D_
</tr>_x000D_
<tr>_x000D_
<td>May</td>_x000D_
<td>AAA</td>_x000D_
<td><span>Invite | Delete</span></td>_x000D_
</tr>_x000D_
<tr>_x000D_
<td>June</td>_x000D_
<td>AAA</td>_x000D_
<td><span>Invite | Delete</span></td>_x000D_
</tr>_x000D_
<tr>_x000D_
<td>July</td>_x000D_
<td>AAA</td>_x000D_
<td><span>Invite | Delete</span></td>_x000D_
</tr>_x000D_
<tr>_x000D_
<td>August</td>_x000D_
<td>AAA</td>_x000D_
<td><span>Invite | Delete</span></td>_x000D_
</tr>_x000D_
<tr>_x000D_
<td>September</td>_x000D_
<td>AAA</td>_x000D_
<td><span>Invite | Delete</span></td>_x000D_
</tr>_x000D_
<tr>_x000D_
<td>October</td>_x000D_
<td>AAA</td>_x000D_
<td><span>Invite | Delete</span></td>_x000D_
</tr>_x000D_
<tr>_x000D_
<td>November</td>_x000D_
<td>AAA</td>_x000D_
<td><span>Invite | Delete</span></td>_x000D_
</tr>_x000D_
<tr>_x000D_
<td>December</td>_x000D_
<td>AAA</td>_x000D_
<td><span>Invite | Delete</span></td>_x000D_
</tr>_x000D_
</tbody>_x000D_
</table>_x000D_
</div>
_x000D_