Cita:  
					Iniciado por emprear  
  En realidad no estás usando divs, estas usando una tabla, no sé de donde vienen tus datos, pero si estás extrayendo dichos valores de una base de datos, sería aceptable
 
Más allá de eso, estas complicándote con el sistema 
te dejo dos variantes, si lo hacés con una tabla se te simplifica el centrado vertical del menu    
Código HTML:
Ver original- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
- <html xmlns="http://www.w3.org/1999/xhtml"> 
- <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
-      
- /* para el segundo ejempo */ 
-     div.contiene_menu{ 
-      width: 200px; 
-      height: 200px; 
-      text-align: center; 
-      margin-right: 3px; 
-      float: left; 
-      display: table; position: static; 
-      } 
-     div.menu { 
-     width: 150px;  
-     height: 150px; 
-     background-color: red; 
-     display: none; 
-     margin: auto; 
-     position: relative; 
-     line-height: 150px; 
-     vertical-align: middle; 
-     } 
-     /* capa extra para centrado vertical - mismo ancho y al to que la capa contiene_menu*/ 
-     div.centrar_v { 
-     display: table-cell;  
-     vertical-align: middle; 
-     position: static; 
-     width: 200px;  
-     height: 200px; 
-     } 
- <script type="text/javascript"> 
-     function mostrarMenu(indice){ 
-     document.getElementById(indice).style.display = 'block'; 
-     } 
-     function ocultarMenu(indice){ 
-     document.getElementById(indice).style.display = 'none'; 
-     } 
- <table border="1" cellspacing="2" cellpadding="0"> 
- <td width="200" height="200" align="center" valign="middle" onclick="mostrarMenu('uno');" style="background-image: url('muno.png');"> 
- <div style="display: none; width: 100px; height: 100px; background-color: red" id="uno" onmouseout="ocultarMenu(this.id);"> 
- menú 1 
- <td width="200" height="200" align="center" valign="middle" onclick="mostrarMenu('dos');" style="background-image: url('mdos.jpg');"> 
- <div style="display: none; width: 100px; height: 100px; background-color: red" id="dos" onmouseout="ocultarMenu(this.id);"> 
- menú 2 
- <div class="contiene_menu" onclick="mostrarMenu('tres');" style="background-image: url('muno.png');"> 
- <div class="menu" id="tres" onmouseout="ocultarMenu('tres');"> 
- menú 3 
- <div class="contiene_menu" onclick="mostrarMenu('cuatro');" style="background-image: url('mdos.jpg');"> 
- <div class="menu" id="cuatro" onmouseout="ocultarMenu('cuatro');"> 
- menú 4 
demo
[url]http://foros.emprear.com/css/centrado-vertical/menusobreimg2.html[/url] 
hay un pequeño detalle que corregir, pero te lo dejo a vos... 
Saludos
   Hola emprear! 
Gracias por tu ayuda, tengo un problema y es que las imagenes de la cuadrícula en realidad tienen que cambiarse por otras al pasar el ratón por encima, y luego aparecer el menú encima si se hace clic. Es posible ese cambio onmouseover estando la imagen como fondo de una celda?