Well in a way, they are drawn (but not really): The browser keeps space for them, so it must consider the items when laying out the visible ones.
See MDC visibility:hidden
:
The box is invisible (fully transparent, nothing is drawn), but still affects layout. Descendants of the element will be visible if they have visibility:visible (this doesn't work in IE up to version 7).
If you specify display: none
instead, the browser only as to care about and layout the visible ones. It does not have to take the others into account at all.
Depending on your visible/invisible ratio and the number of elements, this can make a difference.