display:none are not synonims.
display:none means that the the tag in question will not appear on the page at all (although you can still interact with it through the dom). There will be no space allocated for it between the other tags.
Visibility:hidden means that unlike display:none, the tag is not visible, but space is allocated for it on the page. so for example