Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/07/2009, 08:48
Avatar de Negora
Negora
 
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: Simular FrameSet con alturas en píxeles y porcentajes mediante IFRAME y CS

Hola kseso?, encantado de que me eches una manita con este asunto :) . Te lo agradezco por anticipado. La verdad es que en el ejemplo he ido un poco más lejos de lo que quería con el fin de evitar que mi problema se confundiese con el clásico cabecera-cuerpo-pie.

En mi caso el problema es que no juego sólo con capas DIV, sino con un IFRAME (aunque en el ejemplo mostrase dos), y es por eso que no puedo recurrir a trucos de ocultación o superposición parcial de capas, ya que el IFRAME debe de verse completo, no se trata sólo de un rectángulo de color "plano".

Para que te hagas una idea de lo que persigo, he hecho un esquema:



Como ves, tengo un visor (la ventana del navegador) y dentro del documento contenido una capa DIV de anchura igual a la de dicho visor y altura 50 píxeles. Debajo de ésta, un IFRAME con anchura y altura también directamente proporcional a la del visor.

Si ampliamos el tamaño del visor, la altura de la capa DIV permanece a 50 píxeles invariables, pero las alturas y anchuras restantes se alteran con respecto a las del mencionado visor.

¿Un ejemplo práctico? Imagina un navegador anónimo hecho en web. Arriba una entrada de dirección con diferentes funciones (cargar, detener, etc.) y abajo una ventana donde se carga el sitio web deseado.

Esto se puede hacer fácilmente con una página tipo FRAMESET y creando, aparte, otra página que contenga los controles y que sería referenciada por dicho FRAMESET.

Igualmente se puede lograr usando mi esquema, pero modificando el tamaño del IFRAME con JavaScript en tiempo real, jugando con los eventos onLoad y onResize.

Pero me preguntaba si con CSS se puede llegar a conseguir eso, sin programar (es una duda personal más que una necesidad, advierto). Sé que a primera vista parece muy pero que muy sencillo, pero curiosamente me he empezado a volver loco con el hecho de que el IFRAME ocupe ese espacio de altura arbitraria.

Sobre los detalles que me comentas de CSS la verdad es que he procurado tenerlos en cuenta a tope. Incluso jugué con "table-layout" pensando que impediría que la altura de la celda del IFRAME inferior variase, pero ni aun así lo hice funcionar en IE u Opera. Limitándome a los estándares de CSS v. 2.1 pienso que ese esquema que mencioné al comienzo, usando una tabla, debería de ser 100% funcional, pero parece ser que la ambigüedad existente con respecto al renderizado de las tablas en diferentes navegadores supone un "muro".

Última edición por Negora; 24/07/2009 a las 08:53