Frames

FRAMES

En la pantalla general del navegador, un Frame (o marco) es un procedimiento del lenguaje HTML que divide la pantalla en diferentes ventanas independientes.

Cada ventana tendrá sus bordes y sus propias barras de desplazamiento.

Una característica importante es que pulsando un enlace en un frame se puede cargar en otro frame una página determinada.

Para crear FRAMES necesitamos un documento HTML específico, que denominamos "documento de definición de frames".

En el documento de definición de frames se especifica: tamaño, posición y documento HTML que contendrá cada frame.

En el ejemplo, el documento de definición de frames es un documento HTML que se llama ejemplo1.html cuyo contenido queda expuesto a continuación. El frame de la izquierda es un documento HTML que se llama pagina1.html, el frame de la derecha es otro documento pagina2.html

Respecto a la presentación, tenemos que el primero (el de la izquierda) ocupa el 20% de la pantalla, y el otro, el 80% restante.

<HTML> <HEAD> <TITLE> Primera página con frames</TITLE> </HEAD> <FRAMESET COLS="20%,80%"> <FRAME SRC="pagina1.html"> <FRAME SRC="pagina2.html" NAME="principal"> <NOFRAMES> <P> Sólo puedes ver esta Página si tu navegador tiene la capacidad de visualizar frames. </P> </NOFRAMES> </FRAMESET> </HTML>

Antes de explicar cada una de las etiquetas utilizadas, de forma intuitiva, veremos como el frame de la derecha pagina2.html (que ocupa el 80% de la pantalla) nos sirve como documento de definición de nuevos frames. En este caso, vamos a dividir esta porción de pantalla en dos filas que ocupen el 20% y el 80% respectivamente. Para ello, se refleja el siguiente documento HTML:

<HTML> <HEAD> <TITLE> Segunda página con frames</TITLE> </HEAD> <FRAMESET ROWS="20%,80%"> <FRAME SRC="pagina3.html"> <FRAME SRC="pagina4.html" NAME="segundo"> <NOFRAMES> <P> Sólo puedes ver esta Página si tu navegador tiene la capacidad de visualizar frames. </P> </NOFRAMES> </FRAMESET> </HTML>

La cabecera de página es similar a un documento normal de HTML, se sustituye <BODY> del documento habitual, por un <FRAMESET>. En cada FRAMESET se divide la ventana actual (la general o un marco) en varias ventanas definidas por el parámetro COLS o por ROWS.

En estos parámetros, separado por comas, se define el número de marcos y el tamaño de cada uno. Cada uno de los marcos se define bautizándoles con un 'nombre' y especificando que fichero HTML le corresponde mediante la etiqueta <FRAME>. Por último, se pone la etiqueta <NOFRAMES> por si existe algún usuario que su navegador no soporta frames (un caso raro)

ETIQUETA FRAMESET

Define la distribución de la pantalla: el número y el tamaño de los frames. Tiene dos atributos: COLS (columnas) y ROWS (filas). En otras palabras, la etiqueta <FRAMESET> define las características del conjunto de FRAMES.

<FRAMESET COLS="xx, yy, zz, ......"> : frames en columnas

<FRAMESET ROWS="xx, yy, zz, ......"> : frames en filas

El tamaño de los frames vendrá definido según el valor que demos a (xx, yy, zz, ...). Este valor puede expresarse mediante:

    • Porcentaje: <FRAMESET COLS="20%, 80%">

    • Número absoluto: <FRAMESET COLS="30, 610"> . En este caso, la columna de la izquierda tendrá 30 pixels de ancho y la de la derecha 600 pixels. Es arriesgado utilizar números absolutos, dado que la pantalla de cada usuario varía.

    • Valor relativo: <FRAMESET ROWS="60, *, 80">. En este caso, hay tres filas, la superior ocupa una altura fija de 60 pixels, la inferior de 80 pixels, y la del medio obtendrá el espacio restante. En el supuesto: <FRAMESET ROWS="60, *, *">, la superior ocupa una altura fija de 60 pixels, y el espacio restante se divide por igual entre las dos filas restantes.

Cuando se quiere que no aparezca el borde de separación entre dos FRAMES, se incluye el atributo FRAMEBORDER=0 dentro de la etiqueta FRAMESET.

Para que desaparezcan los huecos de separación entre FRAMES se añaden dos atributos (para Explorer y Netscape): FRAMESPACING=0 y BORDER=0, resulta:

<FRAMESET FRAMEBORDER=0 FRAMESPACING=0 BORDER=0 COLS="xx, yy, zz">

ETIQUETA FRAME

Esta etiqueta define las características de un FRAME concreto. Puede llevar los atributos que se detallan, que van dentro de la etiqueta <FRAME>: