Finalmente, lo conseguí. En gran medida gracias a tus enlaces, Ag666.
Me sirvió, a parte del ejemplo que señalaste, este otro: http://www.araudi.net/ejemplos/simulacion_tabla.html
Aún así, hay que fastidiarse con cómo complica a veces CSS las cosas que podrían ser sencillas...
Pego debajo el código del primer post, funcionando correctamente, por si a alguien le sirve. Salut.
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<meta http-equiv="Content-type" content="text/html;charset=utf-8" />
<meta name="author" content="Unknown" />
<title>Prueba CSS</title>
<style type="text/css">
#contenedor {
width: 400px; /* el tamaño en este caso es conocido, pero */
height: 200px; /* en el caso real el tamaño es desconocido. */
border: 1px solid blue;
position: relative;
}
.cabecera {
height: 30px;
border: 1px solid red;
margin: 2px;
}
.contenido {
border: 1px solid green;
margin: 2px;
position: absolute;
top: 30px;
bottom: 30px;
left: 0px;
right: 0px;
}
.pie {
height: 30px;
border: 1px solid red;
margin: 2px;
position: absolute;
bottom: 0px;
left: 0px;
right: 0px;
}
</style>
</head>
<body>
<div id="contenedor">
<div class="cabecera"><strong>Fila superior</strong></div>
<div class="contenido"><strong>Fila del medio</strong>, que debe ocupar todo el espacio
posible sin desplazar a las otras dos fuera del contenedor.</div>
<div class="pie"><strong>Fila inferior</strong></div>
</div>
</body>
</html>