Por curiosidad, considerando el ejemplo siguiente, ¿por qué tener el margen en el div #container hace que aparezca una barra de desplazamiento vertical en el navegador? El contenedor tiene una altura mucho más pequeña que la altura del cuerpo, que se establece al 100%.
He establecido el relleno y los márgenes en 0 para todos los elementos excepto el #container. Tenga en cuenta que he omitido deliberadamente el posicionamiento absoluto en el div #container. En este caso, ¿cómo calcula el navegador la altura del cuerpo y cómo lo afecta el margen?
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
* { padding:0; margin:0;}
html, body { height:100%; }
#container
{
padding:10px;
margin:50px;
border:1px solid black;
width: 200px;
height: 100px;
}
</style>
</head>
<body>
<div id='container'>
</div>
</body>
</html>
Ejemplo también en JSFiddle