display: none
removes the element from the page entirely, and the page is built as though the element were not there at all.
Visibility: hidden
leaves the space in the document flow even though you can no longer see it.
This may or may not make a big difference depending on what you are doing.