Deberías repasar HTML. Si colocas la etiqueta <ul> debes incluir en ella un <li> para englobar el contenido. Si no usas <ul> puedes colocar un <div> dentro de otro sin más.
El ejemplo que te he puesto funciona como tu has dicho.
Cambiamos la visibilidad del elemento sin modificar la presentación de la página.
Para hacer un desplegable que desplace a otros elementos como en un control tipo acordeón, puedes usar la propiedad display.
Código CSS:
Ver original.oculto div{ display:none; }
.oculto:hover div{ display:block; }