the visibility attribute with the hidden option hides the element but
don't free the space.
A common use case is to have a specific header for the first page and
another for the other pages. With visibility: hidden the second header
cannot take the first one place and will keep a huge margin.
One solution is to use the display:none instead.