2009-02-16 13 views

Respuesta

7

Este es un error bien conocido con IE6 al tratar de posicionar absolutamente divs encima de los controles de selección.

Existen soluciones que implican calzas de iframe, pero no hay una buena respuesta. La respuesta de ajuste de iframe es colocar un iframe debajo de cualquier div que estés tratando de colocar encima de una selección, con iframe del mismo tamaño. Lamentablemente, este es un gran dolor en el culo.

Sugiero usar un sistema de menú javascript que ya usa calces iframe, como YUI menus (y supongo que jQuery).

2

El problema es que SELECT son elementos de "ventana" en IE6, y su índice z está por encima de todos los demás componentes que no están "en ventana". Si absolutamente debe tener algo encima de una combox, puede colocarlo dentro de otro archivo en ventanas, como un IFRAME, y establecer que el índice Z del componente sea más alto que el del cuadro combinado.

Debo admitir que esta no es una solución bonita.

7

La mayoría de las principales bibliotecas de JavaScript tienen soluciones fáciles de implementar para este problema. Usamos jQuery, y el bgiframe plugin es muy fácil de usar y resuelve el problema.

+1

@jonstjohn - Awesome! Eso funcionó bastante bien: el único problema que queda con el uso del plugin bgiframe es que el borde del DIV que tengo todavía se superpone con los desplegables. De modo que la parte principal del DIV se muestra en la parte superior de los menús desplegables, pero el borde negro (CSS - borde: 2 px de estado sólido #cecece;) aún aparece debajo de los menús desplegables. ¿Te has encontrado con esto en absoluto? –

+0

Vaya, no importa. I RTFM y vi las compensaciones "superior", "izquierda", etc. –

+0

Parece "Superior", "Izquierda", etc. No hacer nada. –

3

Daniel es definitivamente correcto. Este es un problema feo.

Sin embargo, puede haber otra solución. Si está utilizando menús de varias capas que se abren y cierran, es posible escribir código JavaScript que literalmente esconde los elementos problemáticos de SELECCIONAR cuando se abre la ventana emergente (estilo el elemento para tener una visibilidad de oculto). Luego, cuando se cierra el menú, puede mostrar el mismo control SELECCIONAR.

Luego solo tiene que escribir el código que detecta qué objetos SELECT se interponen en el camino de un menú en particular antes de abrirse. No es un código trivial, pero definitivamente es posible escribir. Luego, simplemente envolvería todo el fragmento de código en un condicional que verifica si el usuario está en IE ya que no es necesario ejecutar esto en Firefox o Safari.

Cuestiones relacionadas