Ho fatto un po' di prove (Mozilla 5.0 sotto Linux) ed in effetti la cosa succede come dici.
Ma non e` il margine settato quello che esce, dato che anche cambiando dimension resta sempre un bordo di una ventina di px (forse sono 15, ma sicuramente non 8).
Ecco il codice testato:
codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
/*<![CDATA[*/
html {
margin: 0;
padding: 0;
border: 0;
height: 100%;
background-color: black;
font: 1px;
}
body {
margin: 0;
padding: 0;
height: 98%;
background-color: gray;
font: 20px;
border:0;
/*border: 1px solid aqua;*/
}
#page_bg {
position: relative;
width: 95%;
min-height: 70%;
background-color: red;
margin: 0px auto auto auto;
padding: 0
border: 0;
}
/*]]>*/
</style>
</head>
<body>ciao
<div id="page_bg">
prova</p>
</div>
</body>
</html>
Nota che se aggiungo qualsiasi carattere dopo il tag <body> e prima del <div>, la pagina si comporta come dovrebbe (vedi la scritta "ciao"). Se invece tolgo la scritta (che, detto tra parentesi, rappresenta un erorre sintattico nella DTD strict), compare quel bordo nero in alto.