Desbordamiento con diseño de posicionamiento absoluto / relativo

Hace bastante tiempo que estoy jugando con un asunto de diseño específico al que obviamente me estoy aproximando de manera incorrecta.

Aquí está el enfoque desglosado a sus componentes básicos:

<code><!DOCTYPE html>
<html>
<head>
</head>
<body>
<div class="stretched">
    <div class="header">SOME HEADER</div>
    <div class="someControls">
        <input type="button" value="click me"/>
        <input type="button" value="no me"/>
    </div>
    <div class="inner">
        some text...
    </div>
</div>
</body>
</html>
</code>

con el siguiente css:

<code>.stretched {
    position:absolute;
    height:auto;
    bottom: 0;
    top: 0;
    left: 0;
    right: 0;
    width: 250px;
    margin: 30px auto 20px;
    background-color: green;
}

.inner {
    margin:10px;
    background-color: red;   
    overflow: auto;        
}
</code>

Lo que estoy tratando de hacer es tener lastretched div utilizando todo el espacio de la ventana vertical (menos unos pocos píxeles arriba y abajo para el encabezado y el pie de página) y se centra horizontalmente con un fijo con.

Esto parece funcionar bastante bien. El problema es que laoverflow: auto; propiedad no se aplica a lainner contenido como yo quiera Cuandosome text... se hace más largo, elinner div se superpone a mi contenedor y no muestra barras de desplazamiento.

Aquí está el violín:violín # 1

Quiero evitar tener barras de desplazamiento en el cuerpo de la página y, en su lugar, gestionar el desbordamiento mediante barras de desplazamiento dentro de lainner div, haciendo asístretched Siempre enteramente visible.

Podría aplicar el mismo truco conposition: absolute; top: 0; ... alinner div también, pero luego tengo que especificar la altura deheader + someControls explícitamente, lo que quiero evitar, porque es diferente en todas mis páginas.

Así es como funciona como lo deseo (excepto la partetop: 40px;):violín # 2

¿Qué estoy haciendo mal aquí? ¡Gracias por adelantado!

Respuestas a la pregunta(3)

Su respuesta a la pregunta