Los frames en HTML están en desuso ya que tiene varios inconvenientes pero os los voy a explicar ya que esta bien conocerlos, pueden sernos útiles al hacer algunos tipos de paginas web, aunque hoy en dia con el CSS y el jQuery no es muy recomendable usar frames. Ademas es recomendable conocerlos por si los vemos en alguna pagina web que tengamos que modificar.
Los frames con divisiones en la pagina web y en cada una de esas divisiones podemos poner diferentes paginas, tanto locales como externas. Los frames se colocan en la pagina principal de la web que estemos haciendo y cuando los usamos no hay que poner body, la sintaxis de una web con frames seria así:
<html> <head> <title>Definición de Frames</title> </head> <frameset rows="15%,*,75"> <frame src="pagina1.html"> <frame src="pagina2.html"> <frame src="pagina3.html"> </frameset> </html>
Como podéis ver donde debería estar la etiqueta «body» esta «frameset», con esto le indicamos al navegador que iniciamos una pagina con frames y aquí empezamos su definición. El atributo «rows» quiere decir que hacemos la división en sentido horizontal, es decir tenemos tres frames uno arriba, otro en medio y otro abajo. Los posibles valores que puede tener se pueden expresar en:
- % –> esto expresa que tanto por ciento de la pagina ocupara
- 75 –> en numero, indica el tamaño en pixels
- * –> coge el espacio restante después de haber usado los tamaños fijos.
En el ejemplo anterior tenemos en «rows» dos tamaños fijos, el primero «15%» y el ultimo «75», pues el del medio el «*» cogerá el espacio restante, esto sirve para que el usuario que visite la pagina vea el contenido correctamente sea cual sea la resolución de su pantalla. También podemos hacer divisiones en sentido vertical con el atributo «cols» y sus correspondientes valores.
Dentro del «frameset» tenemos tres frames, cada uno con la etiqueta «frame» y un «src» con una pagina que se cargara en el frame en el cual este puesta, estas paginas son locales y deberán estar creadas para ver el algo de contenido.
Los frames se diferencian o separan unos de otros por lineas y si no las bloqueamos el usuario que visite la pagina podría modificarlas mientras navega por la web, para impedir que se puedan mover tenemos que poner el atributo «noresize» a los frames, también podemos quitar el borde con el atributo «frameborder» que puede tener como valor «yes», «no» o «0». Os pongo un ejemplo con estos atributos:
<html> <head> <title>Definición de Frames</title> </head> <frameset rows="15%,*,75"> <frame src="pagina1.html" noresize> <frame src="pagina2.html" frameborder=0> <frame src="pagina3.html"> </frameset> </html>
El atributo «noresize» no tiene valor, si ponemos dicho atributo el frame no se podrá redimensionar y si no lo ponemos si que podremos redimensaionarlo.
El tema de los frames podría ser mas extenso pero como ya he dicho al principio del articulo no se usan mucho y considero que con lo que he explicado es suficiente para reconocerlos si los vemos. En el siguiente vídeo os explico con ejemplos como usarlos:
[youtube]https://www.youtube.com/watch?v=FMtPjEUdXPE&[/youtube]
Si te ha gustado o te ha servido para algo el contenido de este articulo compártelo en las redes sociales para que pueda crecer, muchas gracias.
a mi en lo particular me gustan los marcos porque son muy prácticos, lástima que sea un problema para los buscadores, igual con algunos trucos se puede resolver.
Yo no los uso, prefiero los iframes o hacer las separaciones con css
La verdad es que no veo ninguna diferencia entre frames e iframes, al final de cuentas los dos requieren el documento completo a cargar y pues de un iframe se puede cargar documentos en otro sin problemas igual que con un frame, no entiendo porque los robots dan problemas con ellos 🙁
He encontrado este articulo al respecto, esta muy bien http://www.estilorama.com/seccion/5/id_cat,2/id,20/porque-no-usar-frames
te agradezco tu respuesta, aunque no estoy de acuerdo en no usar frames, aclaro mis motivos, saludos.
* Por la razón anterior, el título de página siempre se mantiene estático, afectando al posicionamiento.
Bueno, eso con javascript se podría cambiar, solo hay que acceder al parent del frame y cambiar el titulo dinámicamente.
* Presenta o puede presentar problemas de visualización en navegadores concretos, de indexación en buscadores y de usabilidad si se indexan páginas de contenido de un marco concreto y no permite la navegación desde el mismo, etc…
No tengo idea de por qué, en todo caso los iframes también deberían estar no recomendados ya que son contenido externo al documento principal tal como es el caso de los frames.
* Al no tener una estructura de URIs, perdemos también enlaces de ancla a partes de un documento.
No me parece convincente, los frames solo sirven para dividir la pantalla en secciones, desde un frame se puede acceder a otro con mencionar el nombre del frame destino en la etiqueta de enlace, veo el mismo problema que con los iframes, y sin embargo no veo que los descontinúen por ese motivo, no entiendo.
El código fuente del frameset no tiene contenido, propiamente dicho, dificultando el posicionamiento.
* si el navegador no soporta frames se podría poner un link en el documento apuntando a un documento simple que muestre la estructura del sitio y así permitirle al robot del buscador navegar por el sitio.
He leido algun articulo mas sobre este tema y, personalmente me mantengo en no usarlos, la W3C los desaconseja. Al final se busca separar el contenido de la parte estetica y los frames son considerados como parte estetica, y como esas separaciones se pueden conseguir con CSS pues intentan encaminarlo por ahi, o eso creo. Un saludo.
ops, creo que ya se saturó el blog de respuestas porque ya no puedo responder directamente 😀 , si, entiendo que no son un standar, pero, como te mencionaba pues yo no creo que sean «tan malos» como los quisieran hacer ver. Respeto las opiniones ajenas y solo como complemento cuando los he usado pues me han dado lo que necesito, claro, eso también incluye problemas 😀
En fin, supongo que habrá otras soluciones, gracias por el artículo, saludos.
Yo los he usado alguna vez pero no me convencen
Necesito eliminar un iframe para mejorar el seo
Hola Luis, contacta conmigo en liher@mail.com y hablamos, ok? Un saludo amigo