Los frames (marcos o cuadros) permiten dividir la ventana en varias ms pequeas, de modo que en cada una de ellas se cargua
una pgina html distinta. Las versiones ms antiguas de los navegadores no tienen implementada esta caracterstica, por lo que no podrn verlos. Sintaxis Los frames se declaran con la etiqueta <FRAMESET>, que debe ser colocada antes de la etiqueta <BODY>. Si no se cumple este requisito, la etiqueta se ignorar. Un ejmplo sencillo es el siguiente: (puedes ver el ejemplo real pulsando aqu)
<HTML> <HEAD><TITLE> Ttulo de la pgina </TITLE></HEAD> <FRAMESET ROWS=75,*> <FRAME SRC="frames1.htm" > <FRAME SRC="frames2.htm" > </FRAMESET> <NOFRAMES> <BODY> Lo siento,su navegador no soporta frames. Pulse <a href="frames1.htm>aqu </A> para acceder a los contenidos de estas pginas. </BODY> </NOFRAMES> </HTML>
EL atributo ROWS (filas) es el que define el nmero y el tamao de los frames, en este caso dos filas, de 75 pxels la primera y el resto de la ventana la segunda. Tambin se puede dividir en columnas mediante COLS El tamao de los frames se puede especificar de ms formas: COLS=*,5* dos columnas, la segunda cinco veces mayor que la primera COLS=150,*,150 tres colunmas, la primera y tercera de 150 pxels, la segunda ocupa el resto. ROWS=20%,80% dos filas que ocupan el 20 % y el 80 % del espacio respectivamente. Las etiquetas NOFRAMES y BODY solamente se usan por cortesa, de hecho se pueden suprimir. Las etiquetas FRAME SRC="frames.htm" cargan las pgina indicadas en el frame correspondiente. Tambin es posible anidar frames, llamando a una pgina que tenga de nuevo frames o bien declarndolo explicitamente. Un ejemplo de esto ltimo es el que aparece abajo (el real aqu )
<FRAMESET COLS=20%,*>
<FRAME SRC="frames1.htm"> <FRAMESET ROWS=20%,*> <FRAME SRC="frames2.htm"> <FRAME SRC="frames3.htm"> </FRAMESET> </FRAMESET>
Este cdigo divide la ventana en dos columnas, la primera del 20 % del ancho total, y la segunda queda dividida a su vez en dos filas, siendo la primera de ellas un 20 % del total
El atributo TARGET Lo ms interesante de los frames es la posibilidad que tienen de interactuar entre si, es decir pulsar un enlace en el frame 1 y cargar el contenido en el frame 2. Para conseguir esto hay que darle un nombre a los frames y luego indicar en el enlace donde se va a cargar mediante el atributo TARGET. Veamos un ejemplo
<HTML> <HEAD><TITLE> Frames --Ejemplo 3--</TITLE></HEAD> <FRAMESET COLS=150,*> <FRAME SRC="frames4.htm" NAME=margen> <FRAME SRC="frames5.htm" NAME=principal> </FRAMESET> </HTML>
Los enlaces de la pgina frames4.htm , que es la que se carga en el margen izquierdo,se escriben de la forma: <A HREF="frames1.htm" TARGET=principal>Frame 1 </A> Hay ciertos valores reservados para TARGET, estos son TARGET=_top, hace que la pgina se cargue en la ventana completa del navegador. TARGET=_self, hace que la pgina se cargue en la misma ventana del frame actual. TARGET=_parent, hace que la pgina se cargue en el frame "padre", del que desciende el actual TARGET=_blank, hace que la pgina se cargue en una nueva ventana. TARGET=nombre, hace que la pgina se cargue en el frame llamado nombre. Si no existe se carga en una ventana nueva Atributos de FRAME En los frames se pueden modificar algunas de sus caractersticas por medio de las etiquetas que siguen:
SCROLLING= yes, no , auto . Indica si el frame llevar siempre, nunca o cuando lo necesite, barra de deslizamiento vertical BORDERCOLOR="color" . Indica el color del borde MARGINWIDTH=n . Indica el margen horizontal, tanto derecho como izquierdo, en pxels MARGINHEIGHT=n . Indica el margen vertical, tanto superior como inferior, en pxels NORESIZE . Indica que el frame no se puede redimensionar. Si no se pone este atributo colocando el cursor en el borde del frame, permitira su deslizamiento Atributo de FRAMESET FRAMEBORDER=yes, no . Indica si los frames tendrn bordes o no. Puedes ver un ejemplo ms de frames aqu