Creo que esto es lo que necesitas (pruébalo en un documento en blanco y luego lo adaptas a tu diseño):
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Head - Contenido - Pie siempre fijos</title>
<style type="text/css">
html, body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
position: relative;
overflow: hidden;
}
#cabecera {
width: 100%;
height: 100px;
position: absolute;
top: 0;
background-color: #000;
overflow: hidden;
}
#contenido {
width: 100%;
position: absolute;
top: 100px;
bottom: 50px;
background-color: #888;
overflow: hidden; /* o 'auto' según convenga */
}
#pie {
width: 100%;
position: absolute;
height: 50px;
bottom: 0;
background-color: #000;
overflow: hidden;
}
.ejemplo {
margin-top: 300px;
}
</style>
</head>
<body>
<div id="cabecera"></div>
<div id="contenido">A esta composición no le afecta la resolución de pantalla: la cabecera y el pie siempre estarán en su lugar y a su tamaño
<p class="ejemplo">Ejemplo de línea de texto situada más abajo</p>
</div>
<div id="pie"></div>
</body>
</html>