MARCOS:

Posibilidad de mostrar en una misma pantalla varias páginas Web, dividiendo la pantalla en tantas partes como deseemos, y visualizar páginas diferentes en cada una de las páginas.

Para crear la estructura de marcos deseada, utilizaremos una página especial, se caracterizará por no tener <BODY>, y tendrá como información el número tamaño y posición de los marcos, así cómo el nombre de la página que le corresponde a cada uno de ellos.

La marca principal de la estructura de marcos será: <FRAMESET> ..</FRAMESET>.

Como atributo de esta marca, especificaremos el número de filas ROW, y el de columnas COL que tendrá la página.

Para indicar el tamaño de las filas y columnas, tenemos tres posibilidades:

  • Utilizando medidas absolutas en pixels
  • Utilizando medidas relativas en porcentajes.
  • Utilizando "*" {toma el resto de la pantalla)


Si utilizamos más de un asterisco, estaremos indicando que el resto de la pantalla se divide en partes iguales, entre las divisiones marcadas por asteriscos.Ejem: Rows="100,*,*". Estamos indicando que tendremos tres filas. La primera una altura de 100 pixels, y las otras dos se repartirán de forma igualitaria el espacio de pantalla sobrante.

Dentro de las marcas de principio y final del frame, <FRAMESET> .</FRAMESET>. situaremos las páginas que deben incluirse en cada marco.
<FRAME SRC="nombrepag.htm">


Tenemos un conjunto de atributos, unidos a la marca <FRAMA SRC= ....>, que nos permitirá controlar la visualización de las páginas en los marcos.

Atributos de formateo en las marcas <FRAME SRC=" ..>
Nombre atributo Valores atributo  
Scrolling= Auto , No , Yes Muestra o no las barras de desplazamiento en las ventanas
Noresize   Impide al usuario redimensionar los frames
FrameBorder= 1 / 0 Muestra, oculta los bordes de los marcos
MarginHeight= Número_pixels Distancia que hay entre el borde del marco y el texto.
MarginWidth=    

Un problema con el que nos podemos encontrar, es que los navegadores antiguos no soportan marcos. Para ello tenemos la etiqueta <NOFRAMES .....</NOFRAMES>, que nos permitirá situar un código alternativo para este caso. Así en la página principal de los marcos, después de haber puesto el código para marcos, situaremos entre la anteriores, la etiqueta principal <BODY> ... </BODY>, y entre las marcas anteriores situaremos el código alternativo.

HIPERENLACES Y MARCOS.

De esta forma, si queremos que un hiperenlace situado en un marco, tenga como destino otro marco diferente del que está el hiperenlace, no lo podremos hacer, la página enlazada siempre irá al marco dónde está el hiperenlace origen.

Para solucionar el problema, damos un nombre a cada marco ( atributo Name ), dentro de la marca <FRAME>, de esta forma tendremos identificados cada uno de los marcos de nuestra página.

<FRAME SRC="pagina.htm" Name="nombre_marco">

Una vez identificado el marco, cuándo queramos que un hiperenlace en concreto tenga cómo destino un marco determinado, sólo tendremos que especificar el nombre del marco destino deseado. Para ello utilizaremos el atributo TARGET de la marca
<A HREF....> <A HREF="pagina.htm" TARGET="nombre_marco">

ANIDACIÓN DE MARCOS.

Al anidar los marcos, dividimos un marco en varios.

Existen dos métodos:

1. Se utiliza el mismo fichero de la división principal. Es un método sencillo, pero cuando se hace la división esta es fija.

2. Se utiliza otro fichero donde se guardará la segunda división, al igual de que se tratase de una página cualquiera.


En el primer caso realizamos la división a la hora de declara los ficheros que se van a utilizar.


Dividimos primero la página en tres columnas de igual tamaño. A la primera le asociamos una página "Marco1.htm". La segunda la volvemos a dividir en dos filas, utilizando la orden de crear una nueva tabla en dicho espacio <FRAMESET> .. </FRAMESET>. Una vez creadas las dos filas asociamos las nuevas páginas "Marco2.htm" y "Marco3.htm", (tabla anidada). Por último, y fuera de la influencia de los marcos anidados asignamos la última página "Marco4.htm".


En el segundo caso realizamos la división de forma dinámica, podemos anidar marcos en cualquier momento y desanidarlos más adelante.

Dividimos primero la pantalla en tres columnas y luego la columna del medio en dos filas.

Para hacer esta segunda división, actuamos como si insertáramos una frame desde el principio. Llamamos a una nueva hoja contenedora de Frames (mediante <FRAME SCR ...>. En esta hoja, que no tiene el apartado <BODY> como todas las genéricas de FRAMES, se crean las dos nuevas filas, y se les asignas páginas HTML.

De esta forma, sólo cambiando la página que debe establecerse en esta zona del marco, podremos anidar y desanidar los frames.

Para ello, deberemos utilizar el atributo de la marca <A>, "Target", y su valor "_parent", que nos indica que se desea deshacer un nivel en los marcos anidados.

Por tanto, podemos decir, que un marco (o una parte de el), se puede tratar al igual que si fuese una página completa.