8. Anidamiento de framesets

Hasta ahora hemos aprendido a dividir la ventana del navegador en dos o más filas con el atributo ROW, sin embargo las posibilidades del lenguaje HTML no acaban ahí.

Tanto a lo largo de este capítulo, como en el capítulo anterior hemos ido viendo algunos ejemplos de frames (figuras 7.1, 7.6 y 8.2) que presentaban páginas Web que dividían la pantalla del navegador de una forma más compleja que simplemente dividir en filas o columnas. ¿Cómo lo hacen? La respuesta es simple, anidando FRAMESETs. En la figura 8.17 podemos ver una explicación gráfica de lo que esto significa. Vamos a explicarla paso a paso.

Figura 8.17. Para conseguir estructuras de frames más complejas puede anidarse la etiqueta FRAMESET. En esta figura se indica cómo hacerlo.

Empezamos con el siguiente código:


      <frameset cols="150,*">
      ... más código ...
      <frameset>

    

Con él estamos dividiendo la ventana del navegador en dos columnas. Como hemos visto un poco antes en este capítulo podemos insertar contenido en cada una de las divisiones creadas usando la etiqueta FRAME, por ejemplo:


      
      <frameset cols="150,*">
      <frame src="frame1.htm"/>
      <frame src="frame2.htm"/>
      <frameset>

    

Pero existe otra posibilidad. En vez de usar la etiqueta FRAME para insertar contenido en la segunda de las divisiones podemos volver a usar la etiqueta FRAMESET (anidándola dentro de la anterior aparición de esta misma etiqueta) para subdividir la parte derecha en dos, es decir:


      <frameset cols="150,*">
      <frame src="frame1.htm"/>
      <frameset rows="100,*">
      ... Más código ...
        </frameset>
      </frameset>

    

Ahora tendremos una página Web formada por tres frames. El primero esta situado a la izquierda de la pantalla y tendrá 200 pixeles de ancho. Los otros dos ocupan el espacio sobrante. Uno ocupa los 100 pixeles superiores y el otro el resto. Por supuesto, al haber dos frames más, debemos volver a usar la etiqueta FRAME para insertar contenido en ellos. El código total quedaría por tanto.


      <frameset cols="150,*">
      <frame src="frame1.htm"/>
      <frameset rows="100,*" >
      <frame src="frame21.htm"/>
      <frame src="frame22.htm"/>
      </frameset>
      </frameset>

    

Sugerencia

No existe ningún límite en el número de niveles de anidamiento de la etiqueta FRAMESET que pueden usarse. La única limitación que debemos tener en cuenta es el tamaño y resolución de pantalla que usarán los navegantes para ver nuestras páginas. Si usamos muchos anidamientos los frames serán muy pequeños y se podrá ver poca información en cada uno de ellos, con lo que se hará necesario usar las molestas barras de desplazamiento.

El hecho de haber elegido esta estructura de tres frames para el ejemplo no es casualidad. Como hemos visto en las capturas de páginas reales mostradas hasta ahora, es una de las más usadas. El frame izquierdo puede usarse como índice y el superior como un espacio para incluir un banner o encabezado gráfico. Estos dos frames pueden mantener su contenido constante mientras en el tercero y más grande de los frames se presenta el contenido principal de la página y es sobre el que se va navegando.

Para tener la página Web completa sólo nos quedaría crear los archivos extra/ejem18/frame1.htm, extra/ejem18/frame21.htm y extra/ejem18/frame22.htm. Nosotros hemos creado unos de ejemplo, incluyendo un encabezado gráfico para el frame superior y hemos obtenido el resultado que vemos en la fig8-18.

Figura 8.18. Nuestra primera página con frames. La ventana está dividida en 3 apartados (los frames) el izquierdo es el índice, el superior el título y el central el que tiene el contenido.

Todos los aspectos relacionados con los frames que hemos visto hasta ahora son iguales para todos los navegadores y han sido adoptados en el estándar HTML 4.0. Esto quiere decir que son entendidos por los navegadores Microsoft Internet Explorer 3.0 o posterior, Netscape Navigator 2.0 o posterior, Opera 3.0 o posterior y los navegadores gráficos que aparezcan de ahora en adelante con soporte completo de HTML 4.0.

Debemos recordar que los frames fueron una invención de Netscape y posteriormente Explorer y otros lo adoptaron. Sin embargo también cambiaron algunas características. Por esta razón en los atributos y etiquetas que veamos a partir de ahora haremos mención explícita de que diferencias existen entre la interpretación del código de los frames por parte de Netscape y Explorer, y lo indicaremos cuando alguna etiqueta, atributo o valor determinado haya sido adoptado por el estándar HTML 4.0.