PORTAL FUENTERREBOLLO

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>:

ATRIBUTOS

CARACTERÍSTICAS

NAME

Asigna un nombre a un marco para que después podamos referirnos a él.

SRC

Indica la dirección del documento HTML que ocupará el marco.

SCROLLING

Decide si se colocan o no barras de desplazamiento al marco para que podamos movernos por su contenido. Su valor es por defecto auto, que deja al navegador la decisión. Las otras opciones que tenemos son yes y no.

NORESIZE

Si lo especificamos el usuario no podrá cambiar de tamaño el marco.

FRAMEBORDER

Al igual que su homónimo en la etiqueta <FRAMESET>, si lo igualamos a cero se eliminará el borde con todos los marcos contiguos que tengan también este valor a cero.

MARGINWIDTH

Permite cambiar los márgenes horizontales dentro de un marco. Se representa en pixels.

MARGINHEIGHT

Permite cambiar los márgenes verticales dentro de un marco. Se representa en pixels.

ETIQUETA TARGET: ACCESO A OTROS FRAMES

Por defecto, cuando dentro de un frame se pulsa sobre un enlace, la nueva página a la que queremos acceder la veremos encerrada en ese mismo frame. Generalmente, este es un efecto no deseado.

Pongamos un ejemplo, tenemos un frame que sirve de Menú y otro donde aparecen los contenidos. Es deseable que los enlaces del Menú se abran en el otro frame. Este evento puede realizarse por el parámetro TARGET. Así, en el ejemplo anterior, si en el frame llamado pagina2.html tenemos un enlace que queremos se abra en el frame principal pondremos:

<A HREF="ejemplo1.html" TARGET="principal">

Existen cuatro nombres reservados que podremos utilizar en el parámetro TARGET, para que cumplan con su cometido, es imprescindible escribir estas palabras reservadas en minúsculas.

TARGET="_top"

Elimina todos los frames existente y muestra la nueva página en la ventana original sin frames.

TARGET="_blank"

Muestra la nueva página en una ventana nueva y sin nombre del navegador.

TARGET="_self"

Muestra la nueva página en el frame donde está declarado el enlace.

TARGET="_parent"

Muestra la nueva página en el <FRAMESET> que contiene al frame donde se declara el enlace. Se utiliza en <FRAMESET> anidados.

 


.