display:none
sarà completamente nascondere un elemento come se ora aveva una larghezza e un'altezza pari a zerovisibility:hidden
d'altra parte si nasconde un elemento, ma prenotare un rettangolo della larghezza e altezza originali dell'elemento nel documento.
C'è un modo attraverso puro CSS, per nascondere un elemento tale che occupa altezza zero ma la sua larghezza originale? Impostando la sua altezza su zero non funziona perché non so a quale altezza impostare l'elemento una volta che voglio mostrarlo di nuovo.CSS: nascondere elemento, ma mantenere la larghezza (e non altezza)
In particolare voglio raggiungere i seguenti obiettivi:
#top ul {take up zero height but original width}
#top:hover ul {restore original dimensions}
Edit: risolto! L'idea è di impostare height:auto
per ripristinare l'altezza originale.
Vedi qui http://jsfiddle.net/yP59s/ per la versione completa o qui il css:
ul {margin:0px}
#top {border:1px solid}
#top ul {height:0px;overflow:hidden}
#top:hover ul {height:auto;}
e il codice html:
<div id="top">
<h1>foobar</h1>
<ul>
<li>foo</li>
<li>bar</li>
</ul>
</div>
blubber
Basta impostare height: auto quando si vuole 'ripristinare' l'altezza. – powerbuoy
Non consiglierei di utilizzare "top" come ID elemento, questa è una parola riservata. –
Questo in realtà non risponde alla tua domanda, ma potresti voler usare un ** altezza ** piccola (ad es. 1px o 2px) invece di 0. Altrimenti, con un'altezza di 0, non ci sarà alcuna superficie su cui aleggiare. – Sildoreth