9. Bordes de los frames

Cuando creamos páginas con frames estos aparecen divididos por unas líneas horizontales y verticales (ver 8-19) que además el usuario que vea nuestra página podrá mover a su antojo (a no ser que usemos el atributo NORESIZE).

Figura 8.19. En general los navegadores dibujan líneas con aspecto 3-D para separar los frames.

Desde la aparición de los frames los programadores de páginas Web han estado reclamando un mayor control sobre la disposición sobre estos bordes y con la aparición de Netscape 3.0 e Internet Explorer 3.0 se introdujeron nuevos métodos para definir sus características.

Estos métodos no son más que la inclusión de tres nuevos atributos para las etiquetas FRAME y FRAMESET. Estos son BORDERCOLOR y FRAMEBORDER para FRAME y BORDER para FRAMESET. Aprendamos a usarlos uno por uno.

9.1. Cambiando el color del borde

El primero de los atributos, BORDERCOLOR, nos permitirá cambiar el color del borde. El color puede indicarse tanto con el número hexadecimal RGB (por ejemplo #99CC99) o bien usando uno de los nombres predeterminados que vimos en el capítulo 5. Por ejemplo para poner el borde de color rojo podríamos usar:
	  <FRAME BORDERCOLOR="red">
	
O bien:
	  <FRAME BORDERCOLOR="#FF0000">
	

Dado que los bordes son compartidos por varios frames, en el caso de que cada uno de los bordes indique un color diferente el resultado es impredecible y depende del navegador. Por esta razón no podemos fiarnos de que si se da esta situación lo que nosotros con nuestro navegador será lo mismo que vean los navegantes y por tanto debemos evitarla en lo posible.

Si en cada uno de los frames de las páginas creadas en la sección anterior usamos este atributo para indicar bordes rojos obtendremos el resultado de la figura 8.20. El código usado es:

	<FRAMESET COLS="150,*">
	<FRAME SRC="frame1.htm" BORDERCOLOR="#FF0000">
	<FRAMESET ROWS="100,*">
	<FRAME SRC="frame21.htm" BORDERCOLOR="#FF0000">
	<FRAME SRC="frame22.htm" BORDERCOLOR="#FF0000">
	</FRAMESET>
	</FRAMESET>
      

Figura 170. Con el atributo BORDERCOLOR podemos elegir el color que queramos para los bordes de los frames.

Hay que admitir que el cambio en la apariencia de la página no es muy importante, sin embargo puede ser muy útil en ciertos Webs en los que los colores están muy cuidados.

El navegador Netscape permite también usar el atributo BORDERCOLOR en la etiqueta FRAMESET, en este caso el valor que demos a este atributo afectará a todos los frames dentro de ese frameset. De esta manera podríamos habernos evitado escribir BORDERCOLOR="#FF0000" tres veces en el ejemplo anterior. Sin embargo debemos tener en cuenta que esta posibilidad sólo la ofrece Netscape Navigator y no Explorer ni otro navegador. Además tampoco ha sido aceptada por el estándar HTML 4.0.

9.2. Como quitar el borde

Muchos diseñadores de Webs que habían sido detractores de los frames cambiaron su opinión sobre ellos una vez se ofreció la posibilidad de quitar los bordes de estos. De esta forma se puede crear la ilusión de que existe un sólo frame (o una página sin frames), mientras aprovechamos las posibilidades para mantener siempre visibles ciertas partes de la página.

La etiqueta FRAME tiene un atributo que puede ser usado para quitar los bordes de los frames: FRAMEBORDER. Este atributo puede tomar dos valores: "1" y "0" que significan mostrar los bordes y ocultarlos respectivamente. El valor por defecto es mostrar los bordes (FRAMEBORDER="1") y si queremos que estos desaparezcan debemos escribir explícitamente:
	  <FRAME FRAMEBORDER="0">
	

Al igual que antes se pueden producir conflictos si un borde es compartido por dos frames uno de los cuales indica FRAMEBORDER="0" y el otro FRAMEBORDER="1". La decisión que tome el navegador en esta situación es impredecible y por tanto debe ser evitada en la medida de lo posible.

Aunque no ha sido aceptado por el estándar HTML 4.0, es importante hacer notar que tanto Netscape como Explorer admiten el uso del atributo FRAMEBORDER en la etiqueta FRAMESET. De esta forma podemos conseguir quitar todos los bordes de una vez poniendo FRAMEBORDER="0" en la primera etiqueta FRAMESET en lugar de repetirla para cada uno de las apariciones de FRAME.

Atención

El atributo FRAMEBORDER surgió como extensión al estándar de HTML. Inicialmente los valores válidos eran yes y no. Sin embargo HTML 4.0 introdujo el soporte de frames en el estándar y los valores aceptados de FRAMEBORDER son 1 y 0. La conclusión es que aunque en las páginas existentes podamos encontrarnos cualquier combinación de los valores anteriores, en las páginas nuevas deberíamos usar sólo los valores numéricos estándar.

Figura 171. Usando FRAMEBORDER="0" ocultamos los bordes de los frames con lo que se consigue una gran mejora en la apariencia.

En la mayoría de las ocasiones quitando el borde de los frames se consigue una apariencia muy mejorada de nuestras páginas. Para conseguir este efecto en las páginas creadas en el ejemplo anterior sólo tenemos que cambiar ligeramente el código para incluir el atributo FRAMEBORDER="0":
	  <FRAMESET COLS="150,*">
	  <FRAME SRC="frame1.htm" FRAMEBORDER="0">
	  <FRAMESET ROWS="100,*">
	  <FRAME SRC="frame21.htm" FRAMEBORDER="0">
	  <FRAME SRC="frame22.htm" FRAMEBORDER="0">
	  </FRAMESET>
	  </FRAMESET>
	
Con este código obtendríamos el resultado de la figura 8.21 en la que no se distinguen los bordes de los frames y por lo tanto no se pueden redimensionar. Sin embargo si hacemos la ventana del navegador más pequeña aparecerán en cada uno de los frames unas barras de desplazamiento que delatarán su presencia, como vemos en la figura 8.22.

Figura 8.22. Aún usando el atributo FRAMEBORDER si hacemos la ventana del navegador pequeña aparecerán barras de desplazamiento en cada uno de los frames.

9.3. Grosor del borde

Una de las últimas extensiones de Netscape Navigator relacionadas con los frames es el atributo BORDER. Con él podemos indicar el grosor del borde que separa los frames asignándole un valor en pixeles. La forma de usar este atributo es:
	  <FRAMEBORDER BORDER="TamañoBordeEnPixeles">
	  ...
	  </FRAMEBORDER>
	

Si existen varias etiquetas FRAMEBORDER en una misma página (es decir si las hemos anidado) podemos usar el atributo BORDER en cualquiera de ellas, pero es conveniente usarla una única vez. Vamos a usarla con nuestro ejemplo para crear un borde grueso entre las dos divisiones del segundo de los FRAMESETS. Para ello usamos el código:
	  <FRAMESET COLS="150,*">
	  <FRAME SRC="frame1.htm">
	  <FRAMESET ROWS="100,*" BORDER="20">
	  <FRAME SRC="frame21.htm">
	  <FRAME SRC="frame22.htm">
	  </FRAMESET>
	  </FRAMESET>
	
Con lo que obtenemos el resultado de la figura 8.23.

Figura 8.23. Con el atributo BORDER podemos cambiar el grosor de los bordes. En este caso el borde horizontal tiene un grosor de 20 pixeles.