L'attributo visibility ha le seguenti opzioni:
visible
hidden
collapse
inherit

L'attributo display, invece, supporta le seguenti (solo quelle di interesse per questo scopo):
block
compact
none

Credo (ma dovresti provare) che se usi display:block / display:none oppure visibility:visible / visibility:collapse lo spazio occupato dal blocco si riduce al minimo o si espande. Se invece usi visibility:visible / visibility:hidden lo spazio occupato rimane lo stesso.

Nota che document.all non e` sintassi JS, ma sintassi jscript (dialetto microsoft).
Per usare JS (valido crossbrowser) devi usare:
document.getElementById('IDNAME').style.display = block;
...
(non ricordo se in questo caso block va inserito fra apici).

Ciao
Michele