Tanto display:none
y visibility:hidden
son universalmente soportado por los navegadores CSS habilitado, por lo que sólo los generales CSS caveat s aplican. El efecto es diferente: display:none
hace que el documento se represente como si el elemento no estuviera allí, mientras que visibility:hidden
significa que el elemento se procesará debidamente al formatear el documento, ocupando normalmente un espacio, pero eliminado de la vista como si se volvieron completamente transparentes.
El que uses depende de tu objetivo de ocultar un elemento. Por ejemplo, si dinámicamente (con un script del lado del cliente) apaga o enciende algún contenido, entonces visibility:hidden
puede ser mejor ya que no causa un redibujado de otro contenido.
El uso de ambos es normalmente sin sentido, como se hace display:none
visibility:hidden
irrelevante (aunque en la cascada, puede ocurrir que la configuración de estas propiedades pueden ser anulados por otras hojas de estilo, y luego display:none
pueden perder efecto).
Ver http://reference.sitepoint.com/css/visibility. Evite usar 'oculto' –