Os dois atributos do CSS "display:none" e "visibility:hidden" ocultam, todos os dois, a exibição de um elemento em CSS, no navegador.
No entanto, existe uma pequena nuance:
- visibility: hidden torna o bloco em questão invisível. Porém, ele ainda mantém a sua localização e dos blocos adjacentes nos mesmos lugares.
- display:none remove o bloco da exibição em curso. Assim, sua localização será ocupada, dependendo do caso, pelos blocos adjacentes, como se o bloco não estivesse lá!