6. Frames



Los principales navegadores que soportan Frames son Netscape Navigator (versión 2.0 en adelante) e Internet Explorer (versión 3.0 en adelante). Los Frames, que traducido sería algo así como cuadros o marcos, son áreas definidas dentro de una misma ventana, cada cual como una página independiente, con su propio código, colores, titulo, etc.

Un documento con Frames tiene la estructura básica de un documento normal de HTML, solo que el elemento <BODY> es reemplazado por <FRAMESET>, que describe los subdocumentos que contendrá cada FRAME

FRAMESET acepta dos atributos, ROWS (filas) y COLS (columnas). Dentro de este elemento, colocamos el comando FRAME, que al igual que el comando IMG (imagen) acepta el parámetro SRC. Si queremos que en un frameset cargue una página llamada menu.htm sería: <FRAME SRC="menu.htm">.

Como todo, lo mejor es ver un ejemplo. Supongamos que queremos dividir una página en dos, de un lado el menú, y por otro lado que se despliegue la información solicitada en el menú. El código para esto sería:
 

El tamaño se puede especificar en porcentajes poniendo el símbolo '%' a continuación del número, en pixeles poniendo solo el número, o bien especificando un valor especial con el asterisco '*' si queremos utilizar todo el espacio que queda. Esto es útil para asegurarnos que un Frame siempre tenga un espacio mínimo disponible. Por ejemplo, si especificamos un menú de 200 pixeles y el resto con '*', esto aseguraría que el menú nunca fuera menos de 200 pixeles. Es muy importante dar un nombre a cada Frame, pues necesitaremos especificar el Frame en el que queremos desplegar la información.

El Parámetro TARGET
Supongamos que tenemos creadas las dos Frames del ejemplo anterior, un menú del 30% y la información en el 70%. Si seleccionamos un enlace (link) en el menú veremos la información desplegada en el 30% del menú y no en el área de la información. Esto se soluciona empleando el parámetro TARGET.

Supongamos que en el menú tenemos 3 opciones:

Estas tres opciones están en el menú, pero queremos que al seleccionar lista de restaurantes la información aparezca en otro Frame Fíjate que el enlace (link) utiliza un nuevo parámetro: TARGET.
<A HREF="hoteles.htm" TARGET="z2">Lista de hoteles</A>

El parámetro TARGET especifica en que FRAME desplegaremos la información seleccionada. En este caso es z2, que es el nombre que se utilizó al definir el FRAME, con el parámetro NAME="z2". En este caso z2 se define como el nombre lógico del FRAME al cual hacemos referencia con el parámetro TARGET en un enlace. TARGET también se puede usar con el elemento BASE. Ej:

<BASE TARGET="z2">

Esto se utiliza cuando tenemos muchas conexiones, que se despliegan en un mismo FRAME, por ejemplo si tuviéramos 30 selecciones en el menú. En vez de poner en cada conexión <A HREF="hoteles.htm" TARGET="z2">Lista de hoteles</A>, ponemos al principio <BASE TARGET="z2"> y todas las conexiones automáticamente se desplegarían en el FRAME z2.

La primer conexión del ejemplo, <A HREF="principal.htm" TARGET="_top">Volver a página principal</A> tiene un TARGET especial.

TARGETs especiales

FRAMES Invisibles
    Crear FRAMES invisibles es muy sencillo, pero ten en cuenta que solo podrán verlas quienes utilizan vesiones de Netscape Navigator o MS Internet Explorer superiores a la 3.x.

    Los navegadores de Netscape y Microsoft, incorporaron a partir de las versiones 3.x, la posibilidad de controlar el borde de un FRAME. Se puede achicar, agrandar, se puede poner un valor determinado, si ponemos cero, tenemos el FRAME invisible. Veamos un ejemplo:

Como ves, se crean dos FRAMES. El '1' llamado 'menú' de 200 pixeles de ancho, el '2' llamado 'texto' del resto de ventana que queda. Nótese en la declaración del FRAMESET dos parámetros: A pesar de que ambos hacen lo mismo, es necesario poner ambos para que se vea correctamente con Netscape y Explorer.