yo creo que su problema va con el uso excesivo o inadecuado de la propiedad position
Cita: #wrapper {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: red;
}
#header {
position: relative;
top: 0;
left: 0;
width: 100%;
height: 250px;
background-color: #2e2721;
}
#body {
position: relative;
width: 100%;
height: auto;
background-color: #39302b;
clear:both
}
#footer {
position: relative;
bottom: 0;
width: 100%;
height: 150px;
background-color: #2e2721;
}
las etiquetas marcadas en rojo no tienen razón de ser en un ejemplo tan básico como el que has expuesto, sumado a esto el uso excesivo o inadecuado de la propiedad position puede crearte muchos problemas.
Hasta no ver mas código implementado para mi carecen de funcionalidad para este ejemplo.
otra cosa, declarar width:100% en un div es innecesario, estos por default ya ocupan el 100% sin necesidad de especificarlo y declarar height:auto en un div es el mismo caso que width:100%