Hola,
Claro que se puede y se debe hacer con capas... de esta forma por ejemplo:
Código:
<!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" dir="ltr" lang="es-ES">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Hola mundo!</title>
<style type="text/css">
body,html {
margin:0px;
padding:0px;
font-size:12px;
font-family:arial,verdana;
height:100%;
color:#999999;
background:#FFFFFF;
}
#contenedor {
width:780px;
margin:auto;
min-height:100%;
height: auto!important;
height:100%;
}
#header {
width:780px;
}
#contenido {
width:780px;
float:left;
}
#pie {
width:90%;
margin:auto;
margin-top:30px;
padding-top:10px;
text-align: center;
border-top:solid 1px #E1E1E1;
color: #999999;
height: 30px;
clear:both;
font-size:12px;
}
</style>
</head>
<body>
<div id="contenedor">
<div id="header"><h1>Cabecera de la web</h1></div>
<div id="contenido">contenido de la web</div>
</div>
<div id="pie">Pie de página</div>
</body>
</html>
es un simple ejemplo, de todas formas en google encontrarás mil ejemplos mejores que el mio, más completos etc...