Incrustación de contenido (iframe) - parte 1

Intermedio
HTML
HTML
Actualizado: 24/04/2026

Diagrama del tema

Introducción

El elemento <iframe> permite incrustar documentos HTML independientes dentro de una página web, actuando como una ventana a contenido externo. En esta primera parte conocerás su propósito, los casos de uso más habituales y los atributos que controlan su comportamiento y seguridad básica.

Propósito y usos del elemento iframe

El elemento <iframe> (inline frame) es una herramienta fundamental en HTML que permite incrustar documentos HTML independientes dentro de una página web principal. Funciona como una ventana que muestra contenido de otra fuente, creando una experiencia integrada para los usuarios.

Qué es un iframe

Un iframe crea un contexto de navegación anidado dentro de tu página web. Esto significa que puedes mostrar contenido de otros sitios web o recursos sin que el usuario tenga que abandonar tu página. El contenido del iframe se carga y funciona de manera independiente al documento principal.

La sintaxis básica de un iframe es sencilla:

<iframe src="https://ejemplo.com"></iframe>

Principales usos de los iframes

Los iframes son extremadamente versátiles y se utilizan en numerosos escenarios:

  • Integración de contenido externo: Permite mostrar contenido de otros sitios web sin necesidad de duplicarlo.
<iframe src="https://docs.google.com/document/d/e/2PACX-1vT..."></iframe>
  • Mapas interactivos: Incorporar mapas de servicios como Google Maps o OpenStreetMap.
<iframe 
  src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d12345.67890!2d-3.7037902!3d40.4167754!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0xd422997800a3c81%3A0xc436dec1618c2269!2sMadrid!5e0!3m2!1ses!2ses!4v1600000000000!5m2!1ses!2ses">
</iframe>
  • Reproductores de video: Integrar videos de plataformas como YouTube o Vimeo.
<iframe 
  src="https://www.youtube.com/embed/dQw4w9WgXcQ">
</iframe>
  • Aplicaciones web embebidas: Incorporar calculadoras, calendarios o herramientas interactivas.
<iframe 
  src="https://calendar.google.com/calendar/embed?src=example%40gmail.com">
</iframe>
  • Previsualizaciones de documentos: Mostrar PDFs, presentaciones o documentos sin necesidad de descargarlos.
<iframe 
  src="https://docs.google.com/viewer?url=http://example.com/document.pdf&embedded=true">
</iframe>

Ventajas de usar iframes

Los iframes ofrecen varias ventajas que los hacen útiles en el desarrollo web:

  • Aislamiento de contenido: El contenido del iframe está separado del documento principal, lo que evita conflictos de estilos o scripts.
  • Carga independiente: El contenido del iframe puede cargarse sin afectar al resto de la página.
  • Mantenimiento simplificado: Al incrustar contenido externo, no necesitas actualizarlo manualmente cuando cambia en su fuente original.
  • Experiencia de usuario mejorada: Los usuarios pueden interactuar con contenido externo sin abandonar tu sitio web.

Casos de uso prácticos

Incrustación de mapas interactivos:

<div class="map-container">
  <h3>Nuestra ubicación</h3>
  <iframe 
    src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3037.6167379590934!2d-3.7037902!3d40.4167754!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0xd422997800a3c81%3A0xc436dec1618c2269!2sMadrid!5e0!3m2!1ses!2ses!4v1600000000000!5m2!1ses!2ses"
    width="400" 
    height="300">
  </iframe>
  <p>Visítanos en nuestra sede central</p>
</div>

Integración de videos:

<div class="video-wrapper">
  <h3>Tutorial de HTML</h3>
  <iframe 
    width="560" 
    height="315" 
    src="https://www.youtube.com/embed/UB1O30fR-EE">
  </iframe>
  <p>Aprende los fundamentos de HTML en este tutorial</p>
</div>

Formularios externos:

<div class="form-container">
  <h3>Encuesta de satisfacción</h3>
  <iframe 
    src="https://docs.google.com/forms/d/e/1FAIpQLSf9d0oZYUkJ4vVlU5JIFnjmHkEEiQqJZwHvv1CjkO_8qX8Lnw/viewform?embedded=true"
    width="640" 
    height="800">
    Cargando formulario...
  </iframe>
</div>

Consideraciones de diseño

Al utilizar iframes, es importante tener en cuenta algunos aspectos de diseño:

  • Responsividad: Los iframes no son responsivos por defecto. Es recomendable utilizar CSS para asegurar que se adapten a diferentes tamaños de pantalla:
<style>
  .responsive-iframe-container {
    position: relative;
    overflow: hidden;
    padding-top: 56.25%; /* Proporción 16:9 */
  }
  
  .responsive-iframe-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
  }
</style>

<div class="responsive-iframe-container">
  <iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ"></iframe>
</div>
  • Accesibilidad: Asegúrate de proporcionar un título descriptivo usando el atributo title para ayudar a los usuarios de lectores de pantalla:
<iframe 
  src="https://example.com/mapa" 
  title="Mapa interactivo de nuestra ubicación en Madrid">
</iframe>

Atributos src, width, height y sandbox

Para configurar correctamente un iframe y controlar su comportamiento, es esencial comprender los atributos principales que determinan su apariencia y funcionamiento.

El atributo src

El atributo src (source) es obligatorio y específica la URL del documento que se mostrará dentro del iframe:

<iframe src="https://example.com/page.html"></iframe>

El valor de src puede apuntar a diferentes tipos de recursos:

  • URLs absolutas: Direcciones completas a sitios externos
<iframe src="https://maps.google.com/maps?q=madrid"></iframe>
  • URLs relativas: Rutas a documentos dentro del mismo sitio web
<iframe src="/recursos/documento.html"></iframe>
  • Contenido en blanco: Usando about:blank para inicializar un iframe vacío que puede llenarse posteriormente con JavaScript
<iframe src="about:blank" id="frame-dinamico"></iframe>

Los atributos width y height

Los atributos width (ancho) y height (alto) definen las dimensiones del iframe en la página:

<iframe 
  src="https://example.com" 
  width="600" 
  height="400">
</iframe>

Usando porcentajes para un diseño más adaptable:

<iframe 
  src="https://example.com" 
  width="100%" 
  height="300">
</iframe>

Para crear iframes responsivos, es mejor combinar estos atributos con CSS:

<style>
  .iframe-container {
    width: 100%;
    max-width: 800px;
  }
  
  .iframe-container iframe {
    width: 100%;
    height: 450px;
    border: none;
  }
</style>

<div class="iframe-container">
  <iframe src="https://example.com"></iframe>
</div>

El atributo sandbox

El atributo sandbox es una característica de seguridad crucial que restringe las capacidades del contenido incrustado. Cuando se aplica sin valores, impone las restricciones más estrictas:

<iframe 
  src="https://external-content.com" 
  sandbox>
</iframe>

Este iframe con sandbox completo:

  • No puede ejecutar JavaScript
  • No puede enviar formularios
  • No puede abrir ventanas emergentes
  • No puede acceder a cookies o almacenamiento local
  • Trata el contenido como de origen único (same-origin policy)

Para permitir ciertas capacidades, puedes añadir valores específicos al atributo sandbox:

<iframe 
  src="https://trusted-site.com" 
  sandbox="allow-scripts allow-forms">
</iframe>

Valores comunes para el atributo sandbox:

  • allow-scripts: Permite la ejecución de JavaScript dentro del iframe
<iframe 
  src="https://example.com/widget" 
  sandbox="allow-scripts">
</iframe>
  • allow-forms: Permite el envío de formularios
<iframe 
  src="https://example.com/contact-form" 
  sandbox="allow-forms">
</iframe>
  • allow-same-origin: Permite que el contenido se trate como del mismo origen, manteniendo acceso a cookies y almacenamiento
<iframe 
  src="https://subdomain.mysite.com/tool" 
  sandbox="allow-same-origin">
</iframe>
  • allow-popups: Permite abrir ventanas emergentes desde el iframe
<iframe 
  src="https://example.com/share-tool" 
  sandbox="allow-popups">
</iframe>

Es común combinar varios valores para lograr el equilibrio adecuado entre funcionalidad y seguridad:

<iframe 
  src="https://trusted-interactive-widget.com" 
  sandbox="allow-scripts allow-forms allow-popups"
  width="500"
  height="300">
</iframe>

Atributos adicionales útiles

  • loading: Controla cómo se carga el iframe (eager o lazy)
<iframe 
  src="https://example.com" 
  width="600" 
  height="400" 
  loading="lazy">
</iframe>
  • title: Proporciona un título accesible para el iframe
<iframe 
  src="https://example.com/contact" 
  width="500" 
  height="300" 
  title="Formulario de contacto">
</iframe>
  • allow: Controla qué características (como geolocalización, pantalla completa, etc.) puede usar el iframe
<iframe 
  src="https://maps-with-location.com" 
  width="600" 
  height="450" 
  allow="geolocation">
</iframe>

Buenas prácticas al usar estos atributos

  • Siempre específica dimensiones: Proporciona valores para width y height para evitar cambios bruscos en el diseño durante la carga.
  • Usa sandbox por defecto: Aplica el atributo sandbox y solo permite las capacidades estrictamente necesarias.
  • Combina con CSS para responsividad: Los atributos width y height funcionan mejor cuando se complementan con CSS.
  • Considera la accesibilidad: Añade siempre un atributo title descriptivo.
<iframe 
  src="https://example.com/video-player" 
  width="100%" 
  height="400" 
  sandbox="allow-scripts" 
  title="Reproductor de video tutorial sobre HTML"
  loading="lazy">
</iframe>

Conclusión

El elemento <iframe> es una herramienta versátil para enriquecer páginas web con contenido externo como mapas, videos, formularios y documentos. Los atributos src, width, height y sandbox son la base para configurarlo correctamente: src define el recurso a cargar, width y height controlan las dimensiones, y sandbox restringe las capacidades del contenido por motivos de seguridad. En la parte 2 profundizarás en las consideraciones de seguridad y en los patrones concretos de incrustación de los tipos de contenido más comunes.

Fuentes y referencias

Documentación oficial y recursos externos para profundizar en HTML

Documentación oficial de HTML
Alan Sastre - Autor del tutorial

Alan Sastre

Ingeniero de Software y formador, CEO en CertiDevs

Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, HTML es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.

Más tutoriales de HTML

Explora más contenido relacionado con HTML y continúa aprendiendo con nuestros tutoriales gratuitos.

Aprendizajes de esta lección

Comprender qué es un iframe y su función en HTML. Aprender a utilizar los atributos principales de iframe como src, width, height y sandbox. Conocer los principales usos prácticos de iframes, incluyendo mapas, videos y documentos.