<iframe>

Zuletzt aktualisiert am 3. Juli 2026

Das <iframe>-Element (Inline Frame) bettet eine externe Webseite oder ein eigenständiges HTML-Dokument in die aktuelle Seite ein. Jeder iframe erstellt einen komplett eigenen Browsing-Kontext: mit eigenem DOM, eigenem CSS, eigenem JavaScript. Das macht iframes mächtig, aber auch komplex: Jeder iframe ist wie ein Mini-Browser im Browser.

Grundlagen

Ein iframe lädt ein vollständiges HTML-Dokument in einem rechteckigen Bereich deiner Seite. Der eingebettete Inhalt ist vollständig isoliert: CSS der Elternseite wirkt nicht im iframe und umgekehrt. Diese Isolation macht iframes zur Standardlösung für das Einbetten von Drittanbieter-Inhalten wie YouTube-Videos, Google Maps oder Social-Media-Widgets.

  • Jeder iframe erstellt einen eigenen Browsing-Kontext mit eigenem window- und document-Objekt
  • CSS der Hauptseite wirkt nicht im iframe, und umgekehrt
  • JavaScript-Kommunikation zwischen Seite und iframe ist nur über postMessage() möglich (bei Cross-Origin)
  • Das sandbox-Attribut schränkt ein, was der iframe-Inhalt darf (Scripts, Formulare, Popups, etc.)
  • Jeder iframe bedeutet zusätzliche Performance-Kosten: Ein neuer Rendering-Kontext, ein neuer Netzwerk-Request, eigenes CSS- und JS-Parsing
  • loading="lazy" sorgt dafür, dass der iframe erst geladen wird, wenn er in den sichtbaren Bereich scrollt
  • Das allow-Attribut steuert Feature Policies wie Kamera, Mikrofon oder Autoplay

Syntax

<iframe src="seite.html"
        width="600"
        height="400"
        title="Beschreibung des Inhalts">
</iframe>

Attribute

Attribut Typ Beschreibung Beispiel
src URL URL des einzubettenden Dokuments. Kann eine externe URL oder ein lokaler Pfad sein. src="https://example.com"
srcdoc String Inline-HTML, das direkt im iframe gerendert wird. Hat Vorrang vor src, wenn beides gesetzt ist. srcdoc="<p>Hallo</p>"
width Number Breite des iframes in Pixeln. Akzeptiert nur ganzzahlige Werte ohne Einheit. Für prozentuale oder andere Werte CSS verwenden. width="600"
height Number Höhe des iframes in Pixeln. Akzeptiert nur ganzzahlige Werte ohne Einheit. Für prozentuale oder andere Werte CSS verwenden. height="400"
sandbox String Aktiviert Sicherheitseinschränkungen. Ohne Wert: alles gesperrt. Mit Werten (Leerzeichen-getrennt): allow-scripts, allow-same-origin, allow-forms, allow-popups, allow-modals, etc. sandbox="allow-scripts allow-same-origin"
allow String Feature Policy: Steuert, welche Browser-APIs der iframe verwenden darf (Kamera, Mikrofon, Autoplay, Fullscreen, etc.). allow="autoplay; fullscreen"
loading String Ladeverhalten: eager (sofort, Standard) oder lazy (erst wenn sichtbar). Lazy Loading spart Bandbreite bei iframes unterhalb des sichtbaren Bereichs. loading="lazy"
name String Name des Browsing-Kontexts. Kann als Ziel für Links (target) oder Formular-Submissions verwendet werden. name="content-frame"
referrerpolicy String Steuert, welche Referrer-Informationen beim Laden des iframes gesendet werden: no-referrer, origin, strict-origin-when-cross-origin, etc. referrerpolicy="no-referrer"
title String Beschreibung des iframe-Inhalts für Screenreader. Kein HTML-spezifisches Attribut, aber für Barrierefreiheit unerlässlich. title="YouTube Video Player"

Beispiele

YouTube-Video einbetten

Der häufigste Anwendungsfall für iframes: Videos von YouTube oder Vimeo einbetten. Die Plattformen stellen einen Embed-Code bereit, den du direkt verwenden kannst.

<iframe
  width="560"
  height="315"
  src="https://www.youtube-nocookie.com/embed/dQw4w9WgXcQ"
  title="YouTube Video Player"
  allow="accelerometer; autoplay; clipboard-write;
         encrypted-media; gyroscope; picture-in-picture"
  allowfullscreen
  loading="lazy">
</iframe>

Tipp: Verwende youtube-nocookie.com statt youtube.com. Das ist die datenschutzfreundliche Variante, die keine Tracking-Cookies setzt, bis der Nutzer das Video tatsächlich abspielt.

Inline-HTML mit srcdoc

Mit srcdoc kannst du HTML direkt im iframe rendern, ohne eine externe Datei zu laden. Das ist nützlich für Live-Previews, Code-Demos oder sandboxed Content.

<iframe
  srcdoc="
    <style>
      body {
        font-family: sans-serif;
        padding: 20px;
        background: linear-gradient(135deg,
          #667eea, #764ba2);
        color: white;
      }
    </style>
    <h1>Live-Preview</h1>
    <p>Dieses HTML wird direkt im iframe
      gerendert.</p>
  "
  width="100%"
  height="120">
</iframe>

Sandbox: Sicherheitseinschränkungen

Das sandbox-Attribut ist der Sicherheitsmechanismus für iframes. Ohne Wert wird alles gesperrt: Scripts, Formulare, Popups, Navigation. Du schaltest gezielt nur das frei, was du brauchst.

<!-- Alles gesperrt: kein JS, keine Formulare -->
<iframe src="drittanbieter.html"
        sandbox="">
</iframe>

<!-- Scripts und Same-Origin erlaubt -->
<iframe src="widget.html"
        sandbox="allow-scripts
                 allow-same-origin">
</iframe>

<!-- Scripts, Formulare und Popups erlaubt -->
<iframe src="app.html"
        sandbox="allow-scripts
                 allow-forms
                 allow-popups">
</iframe>

Responsiver iframe mit aspect-ratio

iframes haben feste Pixel-Abmessungen, was auf verschiedenen Bildschirmgrößen problematisch ist. Mit CSS aspect-ratio und width: 100% wird der iframe responsiv.

<style>
  .responsive-iframe {
    width: 100%;
    aspect-ratio: 16 / 9;
    border: none;
  }
</style>

<iframe
  src="https://www.youtube-nocookie.com/embed/VIDEO_ID"
  class="responsive-iframe"
  title="Video"
  loading="lazy"
  allow="autoplay; fullscreen">
</iframe>

Sicherheit

iframes laden externen Code auf deiner Seite, das birgt Risiken. Hier die wichtigsten Schutzmaßnahmen:

sandbox-Attribut: Schränkt die Fähigkeiten des iframe-Inhalts ein. Ohne Wert ist alles gesperrt. Schalte nur frei, was der Inhalt tatsächlich braucht. allow-scripts allow-same-origin zusammen ermöglicht dem iframe-Inhalt allerdings, die Sandbox selbst zu entfernen. Verwende diese Kombination nur bei vertrauenswürdigen Quellen.

allow-Attribut: Steuert Browser-APIs wie Kamera, Mikrofon, Geolocation. Gib nur die Permissions frei, die der eingebettete Inhalt braucht.

referrerpolicy-Attribut: Kontrolliert, welche Informationen über deine Seite an den iframe-Inhalt gesendet werden. no-referrer ist die restriktivste Option.

Content Security Policy (CSP): Über den frame-src-Header kannst du serverseitig festlegen, welche Domains in iframes geladen werden dürfen.

DSGVO-Hinweis: Drittanbieter-iframes (YouTube, Google Maps, Social Media Widgets) laden Ressourcen von externen Servern und setzen häufig Cookies. Nach DSGVO brauchst du dafür die Einwilligung der Nutzer. Eine gängige Lösung ist ein Platzhalter-Bild mit Hinweistext, das erst nach Zustimmung durch den eigentlichen iframe ersetzt wird.

Barrierefreiheit

Das title-Attribut auf dem <iframe> ist für die Barrierefreiheit unverzichtbar. Screenreader verwenden diesen Text, um den iframe-Inhalt zu beschreiben, bevor der Nutzer hineinavigiert. Ohne title kündigt der Screenreader nur “Frame” an, der Nutzer muss dann raten, was sich dahinter verbirgt.

Formuliere den title so, dass er den Inhalt und Zweck beschreibt:

  • Gut: title="YouTube Video: HTML-Grundlagen Tutorial"
  • Schlecht: title="iframe" oder title="Video"

Wenn der iframe rein dekorativen Inhalt hat oder für Screenreader irrelevant ist, kannst du aria-hidden="true" setzen. Rein dekorative iframes sind aber selten. Überleg in dem Fall, ob du den iframe überhaupt brauchst.

Häufige Fehler

title-Attribut vergessen: Ohne title ist der iframe für Screenreader-Nutzer nicht identifizierbar. Es kostet dich fünf Sekunden, spart aber vielen Nutzern Frustration.

sandbox nicht verwenden bei Drittanbieter-Inhalten: Wenn du Inhalte von externen Quellen einbettest, solltest du immer sandbox mit den minimal nötigen Permissions setzen. Ohne Sandbox hat der iframe-Inhalt vollen Zugriff auf Browser-APIs.

iframe für Inhalte verwenden, die dazugehören: Wenn der Inhalt Teil deiner eigenen Seite ist, brauchst du keinen iframe. Iframes sind für externe oder isolierte Inhalte gedacht. Für seiteneigene Inhalte gibt es bessere Lösungen: Komponenten, Web Components oder Server-Side Includes.

Feste Pixel-Abmessungen ohne responsive Lösung: Ein iframe mit width="600" height="400" überläuft auf Mobilgeräten. Verwende CSS aspect-ratio mit width: 100% oder einen Container mit overflow: hidden für responsives Verhalten.

allow-scripts allow-same-origin leichtfertig setzen: Diese Kombination in sandbox erlaubt es dem iframe-Inhalt, die Sandbox-Einschränkungen selbst zu entfernen. Verwende sie nur bei Inhalten, denen du vollständig vertraust.

Browser-Kompatibilität

Das iframe-Element wird seit den Anfängen des Webs von allen Browsern unterstützt. Auch die Attribute sandbox, allow und loading werden von allen modernen Browsern unterstützt.

ClientUnterstützungHinweise
ChromeKomplettVollständige Unterstützung aller Attribute inkl. sandbox, allow und loading="lazy".
FirefoxKomplettVollständige Unterstützung aller Attribute inkl. sandbox, allow und loading="lazy".
SafariKomplettVollständige Unterstützung aller Attribute inkl. sandbox, allow und loading="lazy".
EdgeKomplett
OperaKomplett

Email-Kompatibilität

iframes werden von den meisten Email-Clients aus Sicherheitsgründen komplett entfernt. Verwende in E-Mails stattdessen verlinkte Bilder oder Thumbnail-Previews.

ClientUnterstützungHinweise
Apple MailTeilweiseApple Mail kann iframes grundsätzlich anzeigen, aber das Verhalten ist inkonsistent. Besser auf Links mit Vorschaubildern setzen.
GmailKeineGmail entfernt iframes komplett. Verwende ein verlinktes Vorschaubild statt eines eingebetteten Videos.
OutlookKeineOutlook entfernt iframes. Für Videos ein Thumbnail mit Play-Button verwenden, das auf die Video-URL verlinkt.
ThunderbirdTeilweiseKann iframes anzeigen, blockiert aber standardmäßig Remote-Inhalte. Nutzer müssen das Laden explizit erlauben.
Yahoo MailKeineYahoo Mail entfernt iframes aus Sicherheitsgründen komplett.

Verwandte Elemente

Bleib auf dem Laufenden

Erhalte neue Inhalte direkt in dein Postfach

Mit der Anmeldung akzeptierst du unsere Datenschutzerklärung. Du kannst dich jederzeit über den Link in den E-Mails wieder abmelden.

Was erwartet dich?

Neue Artikel & Videos

Wenn ich was Neues veröffentliche, erfährst du's hier zuerst.

Plattform & Kurs-Updates

Neue Kurse, Referenz-Updates und gelegentlich Sonderpreise zum Launch.

Einmal die Woche in deinem Postfach

Kurz, auf den Punkt, kein Spam.