Sólo es necesario hacerlo tal como dice Kseso?. Es extremadamente sencillo y cumple todo lo requerido.
Cita:
Iniciado por kseso? De nuevo:
Si en el html aparece primero su menú sólo necesita flotarlo y darle una anchura.
El siguiente div si no lo limita declarando anchura ocupará todo el espacio sobrante. Es así por los valores y propiedades intrínsecas a cualquier elemento de bloque.
Otra cuestión es que tenga otros elementos/propiedades que lo impidan (y que nosotros desconocemos).
O quizás a lo que se refiere es a que queda un pequeño espacio libre entre sus div's y el body?
Si fuese eso, resete a Ø los margin
Un ejemplo:
<!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">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Sin título 1</title>
<style type="text/css">
* {
margin: 0; padding: 0; /* esto es un reset básico */
}
html, body {
width: 100%; height: 100%;
}
.menu {
width: 250px;
height: 100%;
float: left;
background-color: #ccc; /* fondo sólo para ver el efecto */
}
.contenido {
height: 100%;
background-color: #900; /* fondo sólo para ver el efecto */
}
</style>
</head>
<body>
<div class="menu">
<p>espacio para el menu</p>
</div>
<div class="contenido">
<p>espacio para el contenido</p>
<p>si haces un resize verás que siempre se mantiene la estructura igual</p>
</div>
</body>
</html>
El editor no me deja usar code.