Tabla de encabezado fijo, cuerpo desplazable para ocupar el 100% de la altura del DIV redimensionable

Tengo una tabla en la que quiero tener un encabezado fijo y permitir que las filas de la tabla se desplacen mientras la fila del encabezado permanece estática. Además, quiero que la sección del cuerpo de la tabla tome la altura restante en el elemento contenedor que queda después de que se representa la fila del encabezado.

Hasta ahora tengo dos tablas, la primera contiene un thead, tr y múltiple th, la segunda contiene el cuerpo con múltiples tr, cada uno con múltiples td, así:

<table>
    <thead>
        <tr>
            <th>Heading 1</th>
            <th>Heading 2</th>
            <th>Heading 3</th>
            <th>Heading 4</th>
            <th>Heading 5</th>
        </tr>
    </thead>
</table>
<div style="overflow:scroll">
    <table>
        <tbody>
            <tr><td /><td /><td /><td /><td /></tr>
            <tr><td /><td /><td /><td /><td /></tr>
        </tbody>
    </table>
</div>

Investigué un poco y descubrí que configurar un estilo de la siguiente manera en un DIV lo hace escalar a la altura de su elemento contenedor

position:absolute;
height:auto;
top:0;
bottom:0;

El problema es que establecer una posición absoluta tanto en la tabla que contiene el encabezado como en la tabla que contiene el cuerpo los establece para representar en 0, 0 dentro del elemento contenedor. Podría especificar un valor de píxel para la propiedad superior CSS pero esto lo hace más rígido.

¿Hay algún valor o combinación de posicionamiento CSS clave en el que no esté pensando que pueda ayudarme a lograr todo esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta