![]()
![]()
Introducción
Con las frames es posible dividir la ventana del navegador en varias subregiones (frames), permitiendo mostrar una URL distinta en cada una de ellas. En cada frame se nos permite:
Esto permite crear nuevos tipos de documentos, en los que por ejemplo se mantendrá una región estática (lista de enlaces, barra de botones, formulario) y otra zona dinámica en la que se mostrará el resultado. De esta forma una de las principales utilidades de las frames es la creación de páginas con un índice (por ejemplo un manual) o una cabecera estática, consiguiendo así una mejora de la navegación al poder acceder al índice de una manera más rapida y efectiva.
El uso de las frames es útil para cierto tipo de documentos, pero puede llegar a dificultar la navegación, dentro de un documento con frames no tendrá utilidad los botones de documento previo (back) ni documento siguiente (forward), ya que ambos nos trasladarán fuera del documento con frames. Para ver el documento previo en una de las frames debemos utilizar el botón derecho del ratón sobre ella y seleccionar la opción volver en el frame (Back in Frame). Esto hace que cuando se utilicen frames haya que cuidar la correcta transición entre documentos.
No todos los navegadores pueden mostrar documentos con frames, solo son interpretables por el Netscape 2.0 o superior y el Internet Explorer 3.0. Por tanto en este caso si se quiere que el documento sea accesible por gran cantidad de usuarios de debe crear un documento con frames y otro sin ellas, usando la etiqueta NOFRAMES.
Definición
Un documento con frames se define de manera diferente a un documento normal, siendo la estructura del documento distinta, en este caso no se define la etiqueta BODY. Su estructura es la siguiente:
Dentro de la etiqueta NOFRAMES se podrá incluir una explicación de que el documento solo es visible con el navegadores que soporten frames, o bien incluir una versión del documento que se muestre sin necesidad de frames.
<FRAMESET
...> Definición de las frames.
Con esta instrucción definiremos las frames que formarán el documento, su sintaxis es similar a la de las tablas, permitiendo definir muy distintos tipos de frames. Su formato es el siguiente:
Se definirá solo uno de los atributos, o la lista de filas (ROWS) o la lista de columnas (COLS).
Se definirá separado por comas el tamaño de cada una de las frames. De esta forma se dividirá la pantalla de forma horizontal, según cada una de las filas definidas. El tamaño de la frame, puede expresarse de las siguientes formas:
| Ejemplo | |
|---|---|
| Inst. HTML | Muestra |
| <FRAMESET ROWS="100,
50%, *"> <FRAME SRC="frame1.htm" NAME="frame1"> <FRAME SRC="frame2.htm" NAME="frame2"> <FRAME SRC="frame3.htm" NAME="frame3"> </FRAMESET> |
|
| Se definen tres frames horizontales, la primera (roja) ocupará 100 puntos de la pantalla, la segunda (azul) el 50% del tamaño de la ventana del navegador y la tercera (verde) el espacio restante, si se varía el tamaño de la ventana del navegador, cambiará el tamaño de las dos últimas. | |
Toma los mismos posibles valores que ROWS, pero en este caso para las columnas, se definirán las frames de forma vertical.
| Ejemplo | |
|---|---|
| Inst. HTML | Muestra |
| <FRAMESET COLS="100,
50%, *"> <FRAME SRC="frame1.htm" NAME="frame1"> <FRAME SRC="frame2.htm" NAME="frame2"> <FRAME SRC="frame3.htm" NAME="frame3"> </FRAMESET> |
|
| En este caso se definen las frames de forma vertical, guardando la misma proporción que en el caso anterior. | |
Una vez definida el número de frames por fila o por columna se definirá el contenido de cada una de estas con la etiqueta FRAME, pero igualmente se podría definir frames dentro de frames, de forma que cada una de las definidas anteriormente podría estar divida en varias frames, esto se hará incluyendo dentro de la instrucción FRAMESET, nuevas instrucciones FRAMESET que dividirán esta en las frames indicadas, como se ve en el siguiente ejemplo:
| Ejemplo | |
|---|---|
| Inst. HTML | Muestra |
|
|
| Tomando como base las frames que se definieron en un ejemplo anterior, hemos dividido dos de las frames en nuevas frames, formando en este caso un documento con 6 frames, en cada una se muestra un fichero distinto y tienen un nombre distinto. Dentro de las frames definidas se podrían definir nuevas frames, pudiendo dividir la ventana, tantas veces como se desee. | |
<FRAME
...> Definición de cada una de las frames
Como se ha visto en el apartado anterior con la etiqueta FRAME definiremos el documento que se mostrará en la frame y su nombre. Esta etiqueta presenta además algunos otros atributos:
<FRAME SRC="URL" NAME="Nombre de la frame" MARGINWIDTH="ancho del margen" MARGINHEIGHT="alto del margen" SCROLLING=YES | NO | AUTO NORESIZE>
Como su nombre indica, especifica el documento HTML o fichero que se mostrará en la frame definida. Si no se especifica documento alguno se mostrará la frame vacía.
Indica el nombre de la frame, este nombre es importante ya que se usará en los hiperenlaces (normalmente en los documentos de las otras frames) para indicar la frame de destino del documento. Si no se indica el nombre solo se podrá mostrar el documento actual, sin que sea posible cambiarlo mediante hiperenlaces.
Indica el ancho del margen, este atributo es opcional y normalmente el navegador ajusta todos los márgenes al mismo tamaño, si se especifica se valor será en puntos de la pantalla.
Igual que en el caso anterior pero para el alto de los márgenes. Lo normal es no especificar ninguno de estos dos atributos.
Indica si la frame tendrá o no una barra de scroll, la barra de scroll se muestra en el lateral y permite desplazarse por el documento, pulsando con el ratón en ella. Si toma el valor YES, siempre se mostrará esta barra, para el valor AUTO solo se mostrará si el documento no cabe en la frame, si es necesaria. Y por último NO indica que en ningún caso se muestre la barra de scroll. Si no se indica nada se toma por defecto el valor AUTO.
Indica que la frame no debe ser variada de tamaño por el usuario, se puede variar el tamaño de una frame situando el cursor del ratón encima y arrastrando en la dirección deseada. Con este atributo el usuario no podrá cambiar el tamaño de la frame en ningún caso. Por defecto todas las frames pueden variar su tamaño.
TARGET:
Atributo para indicar la frame de destino
El uso de frames introduce un nuevo atributo a alguna de las etiquetas especificadas con anterioridad, este atributo es TARGET que indicará la frame de destino de la operación. Normalmente, en páginas sin frames, cuando se seguía un hiperenlaces este se mostraba en la ventana del navegador sustituyendo el documento actual, con las frames se puede especificar que frame será la de destino, no siendo necesario que sea la frame del documento actual.
Como nombre de la frame su usará el nombre que se especifico en el atributo NAME de la etiqueta FRAME. Estas instrucciones se utilizarán normalmente en los documentos que se incluyen dentro de las frames.
Las etiquetas que permiten el uso de TARGET son las siguientes:
En los hiperenlaces indicará la frames donde se mostrará el documento, una vez que se siga el hiperenlace.
<A HREF="url" TARGET="frame">
Indicará la frame en la que se mostrará por defecto todos los hiperenlaces del documento actual. Se debe especificar en la cabecera del documento (HEAD).
<BASE TARGET="frame">
En la definición de imágenes sensibles en el cliente, se indica la frame donde se verá el documento que se activa en la zona correspondiente de la imagen.
<AREA SHAPE=RECT COORDS="x,y,..." HREF="url" TARGET="frame">
Indicará la frame de destino del resultado del formulario.
<FORM ACTION="url" TARGET="frame">
Existen unos valores especiales de TARGET que nos permitirán definir destinos distintos a las frames definidas. Estos valores son los siguientes: