Los frames (en inglés frame = cuadro, bastidor, marco o
panel) es un elemento implementado por Netscape, que permite dividir
la pantalla en varias áreas independientes unas de otras, y por
tanto con contenidos distintos, aunque puedan estar relacionados.
Cada una de estas zonas es capaz de mostrar código HTML, como en las
celdas de una tabla. Sin embargo, no hay que confundir paneles con tablas
ya que existe una gran diferencia; en el caso de una tabla, todas las celdas
forman parte del mismo documento HTML, mientras que en el caso de los
frames cada zona de la pantalla es un documento HTML propio. Se ve
pues, simultáneamente, en la misma ventana de un browser, la página
correspondiente a varios ficheros.
El concepto de frame elimina una de las limitaciones del Web ya que
hasta ahora, cada nuevo documento destruía el anterior, y obligaba al usuario a usar
demasiado el comando Back de los browsers. Ahora es posible dedicar ciertas zonas a tareas
bien definidas, como por ejemplo tener en una zona un menú que casi nunca será necesario
recargar.
La estructura general de un documento dividido en varios paneles difiere
de la de un documento clásico ya que en éstos el cuerpo se inserta en las marcas
<BODY> y </BODY>, mientras que en los paneles,
el cuerpo del documento se inserta entre las marcas <FRAMESET> y
</FRAMESET>.
El elemento <FRAMESET> permitirá
precisar la forma de los diferentes paneles por medio de dos atributos:
ROWS y COLS. <FRAME> es la marca
de definición de los paneles creados con FRAMESET.
La mayoría de los visualizadores no soportan los frames. Para que
nuestra página con frame no resulte opaca a ellos se
utilizará el elemento <NOFRAMES> que permite ofrecer un
texto alternativo en entorno normal.
Los paneles pueden estar relacionados y tener enlaces de unos a otros
para ello se utiliza el atributo TARGET que
indica en qué panel debe mostrarse el documento asociado a un enlace
de hipertexto.
Al final de esta página se muestran diversos ejemplos de frames.
Este elemento sustiye al elemento <BODY> y permite dividir
una zona en subzonas, bien verticalmente, bien horizontalmente.
Si no hay ninguna zona todavía, las divisiones se aplican a la zona
inicial formada por el conjunto de la ventana del browser. Esta marca
posee dos atributos:
ROWS: Se utiliza para dividir la zona en subzonas horizontales. La sintaxis es:
ROWS="altura_zona_1, altura_zona_2,...,altura_zona_n"
ROWS es una lista de valores enteros separados por comas. El número
de elementos de la lista corresponde al número de subzonas horizontales
a crear. Cada uno de los valores de la lista puede darse según uno de los
tres formatos siguientes, donde n es un entero:
- n: indica la altura de la subzona en píxels.
- n%: indica la altura de la subzona expresada en porcentajes del tamaño de la zona madre.
- n*: n es opcional. El carater * indica al browser que debe dar a la zona todo el espacio aún disponible.
COLS: Se utiliza para dividir la zona
en subzonas verticales. La sintaxis es igual que en el atributo ROWS.
ROWS="altura_zona_1, altura_zona_2,...,altura_zona_n"
Ejemplo:
A continuación se muestra dos maneras idénticas de dividir una zona en
tres. Las dos subzonas superiores son de tamaño idéntico y la última es
el doble de las anteriores.
|
<FRAMESET ROWS="25%,25%,50%">...<FRAMESET>
<FRAMESET ROWS="*,*,2*">...<FRAMESET>
|
Este nuevo atributo afecta a las marcas que caracterizan los enlaces de
hipertexto, en particular a las marcas <A> y <FORM>.
TARGET permite precisar el nombre de la zona que debe recibir el
documento correspondiente al enlace. Por ejemplo:
<A HREF="/dossier.html" TARGET="zonadossier"> Ver el dossier </A>
El atributo TARGET existe para indicar al browser que, en respuesta a un clic, debe mostrar el documento
dossier.html en el panel cuyo nombre es "zonadossier".
De igual modo, el formulario definido por:
<FORM ACTION="cgi_bin/test" TARGET="zonascript" METHOD="POST">
...
</FORM>
Mostrará sus resultados en el panel cuyo nombre es "zonascript".
El atributo TARGET puede tener tres valores diferentes:
Un valor que corresponde al nombre de un panel existente.El documento
asociado al enlace de hipertexto se muestra entonces en el panel en
cuestión.
Un valor que no corresponde a ninguno de los paneles existentes. El
browser crea entonces una nueva ventana y muestra el documento. Esta
nueva ventana se considera como un panel con el atributo TARGET del
origen de su creación.
TARGET puede tomar uno de los siguientes cuatro valores:
- _blank, indica al browser que debe crear una nueva
ventana con el fin de mostrar el documento. La nueva ventana
es un panel que no tiene nombre y no puede ser por tanto el
destino de otro enlace de hipertexto.
- _self, indica que el documento se cargará en la misma
zona donde se encuentra el enlace de hipertexto. Se trata del
valor predeterminado cuando no se indica el atributo TARGET.
- _top, indica al browser que suprima todos los paneles
existentes y visualice el documento de modo normal.
- _parent, indica al browser que visualice el documento
ocupando toda la superficie de la zona en la que se ha visualizado
el documento que contiene el enlace. Esta noción solo tiene sentido
cuando los diferentes niveles de paneles provienen del
anidamiento de documentos y no del anidamiento de marcas
<FRAMESET>.
A continuación se expondrán algunos ejemplos para que queden claros todos los conceptos aprendidos.