Capas sobre un <select>

Jordi
29 de Septiembre del 2004
Hola,
he creado un menú desplegable con distintas capas que se visualizan al pasar sobre cada opción.
El problema se me presenta cuando la capa (<div>) debe visualizarse sobre los elementos de un formulario, concretamente sobre una opción desplegable (<select>). Estoy utilizando IE 5.5

El efecto es parecido a lo que ocurre en esta misma página del foro, cuando la 'ventanita' de Formación Online se sobrepone al select de "Nuestras zonas" (si el ancho de la ventana se acerca a los 600 pixels, la ventana y el select coinciden).

Si alguien conoce alguna solución se lo agradecería

prototipos
29 de Septiembre del 2004
Pues sospecho q es un poco dificil logralo, yo tenia entendido que los objetos combo a efectos de sistema operativo funcionan como ventanas, y por tanto se colocan siempre sobre cualquier cosa, si te fijas es incluso capaz de saltarse un frame en una pagina para mostrar su contenido.

Jordi
29 de Septiembre del 2004
Si tienes razon, es bastante difícil.
He 'investigado' un poco y el objeto <select> ignora el parámetro z-index del estilo; digamos que se comporta como un control dentro de la página.
Una posible solución es crear el menú desplegable (o la capa) en un contenedor java, desde un applet. El panel del applet sí puede visualizarse sobre un combo.

Alberto
29 de Septiembre del 2004
Hay un truco que funciona solo a partir de IE 5.5. Tienes que colocar una capa, dentro poner un iframe con src="about:blank" y ancho y alto 100%. A la capa le das el mismo ancho del menú.

Luego, con z-Index mayor, colocas la capa con tu menú.

En la función que muestra el menú, colocas esto:
document.all.menuf.style.height=document.all.menu.offsetHeight

Con ello, el tamaño de la capa que contiene el iframe, se adapta a la del menú, y el iframe, que está al 100%, a su capa contenedora. El iframe queda sobre los combos sin desplegar.

Espero que te sirva. Un saludo.

Alberto
29 de Septiembre del 2004
Olvidé decir que en la función:

document.all.menuf.style.height=document.all.menu.offsetHeight

"menuf" es la capa de fondo y "menu" es tu capa de menú.