(finchè parliamo di elementi in posizionamento relativo)
se un elemento prima non occupava spazio e dopo lo occupa è normale che sposti tutto quello che lo segue verso il basso
se vuoi si può giocare con la visibilità, ma la parte nascosta occupa spazio anche da invisibile
codice:
<head>
<script type="text/javascript">
function mostra_nascondi(){
var el=document.getElementById('box').style
el.visibility=(el.visibility=='visible')?'hidden':'visible'
}
</script>
</head>
<body>
<div id="box" style="visibility:hidden">
elemento inizialmente nascosto,

occupa cmq spazio anche da invisibile

perchè è nascosto tramite visibility


...
</div>
mostra/nascondi
</body>
soluzioni alternative sono parecchio + complesse
(specie se da applicare a layout tabellari...)