Mar 2009

HTML-Tag<frame /> ♦ Fenster in ein zusätzliches HTML-Dokument

 
 

Das <frame>-Tag erzeugt innerhalb eines HTML-Dokuments ein Fenster in ein anderes Fenster. Frames waren in den Anfangszeiten des grafischen Internets ein beliebtes Mittel, einzelne Bereiche einer Webseite durch individuelle Dateien abzubilden – so z.B. konnte die Navigation auf allen Seiten durch ein einziges Dokument erstellt werden, um Änderungen in der Navigation ohne Aufwand in allen Seiten des Webauftritts durchzuführen. Außerdem waren frames die Basis für komplexe Layouts, bevor CSS von allen Browsern unterstützt wurde.

Aus frames zusammen gesetztes HTML-Dokument

Ein derartiger Aufbau eines HTML-Dokuments aus frames war wie geschaffen für einen Seitenkopf, Navigation, eine Extraspalte und einen Fußbereich. Die Grenzen zwischen den frames können durch das frameborder-Attribut unterdrückt werden.

XHTML und frames

Heute stehen moderne Methoden (z.B. PHP-Skripte, Ajax, Server Side Includes, CSS-Positionierung) zuverlässig zur Verfügung und frames werden kaum noch eingesetzt, denn frame-Seiten bringen gravierende Nachteile mit:

  • Frame-Seiten lassen sich kaum durch Bookmarks speichern.
  • Seiten, die mit frames realisiert sind, lassen sich ebenso kaum durch einen Link anbinden. Der Link auf eine Seite, die aus Frames aufgebaut ist, wird nur die Startseite erreichen, aber nicht den tatsächlich referenzierten Inhalt.
  • Suchmaschinen können die Inhalte nicht indexieren, denn sie erreichen nur die frameset-Seite, die aber keine Inhalte aufweist. U.u. indexiert die Suchmaschine nur den Inhalt des noframe-Elements.

In XHTML 1.0 müssen Seiten, die mit frames aufgebaut sind, mit einem speziellen Doctype deklariert werden und in XHTML 1.1 sind frames nicht mehr erlaubt.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">	

Webseiten mit frames aufbauen

Wenn z.B. drei Fenster in einer HTML-Seite erscheinen sollen, müssen drei <frame>-Tags innerhalb eines <frameset>-Tags gesetzt werden und das frameset-Element muss den Raum für die drei Frames bestimmen. Gleichzeitig müssen drei HTML-Dokumente existieren, die die Inhalte der drei Frames darstellen.

Das <frame>-Tag kann nur zwischen dem öffnenden und schließenden <frameset>-Tag gesetzt werden.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head> … </head>
<frameset cols="*,380,*">
   <frame src="links.html" name="links" />
   <frameset rows="*,160,*">
      <frame src="oben.html" name="oben" />
      <frame src="mitte.html" name="mitte" />
      <frame src="unten.html" name="unten" />
   </frameset>
   <frame src="rechts.html" name="rechts" />
</frameset>
<noframes>
<body>
<p>Kurzbeschreibung der Seite</p>
</body>
</noframes>
</html>

Ein frame-Element kann jede Art von Inhalt darstellen: Formulare, Bilder, Multimedia-Elemente, anderer Frames, Tabellen usw.

Frames können entweder in einer spalten- oder zeilenorientierten Darstellung konfiguriert werden, aber nicht gleichzeitig beide Konfigurationen zeigen. Die Konfiguration muss entweder das cols- oder das rows-Attribut im <frameset>-Tag setzen. Wenn es sich um eine Zeilenkonfiguration handelt, ist das erste Frame-Element das oberste Fenster, das zweite Frame-Element das zweite Fenster von oben usw. Für eine spaltenorientierte Konfiguration verläuft die Reihenfolge von links nach rechts.

<frameset>-Tags können ineinander verschachtelt werden.

HTML-Attribute für frame-Tags

frameborder
legt einen Rahmen um den Frame oder entfernt ihn. Die möglichen Werte sind 0 oder no und 1 oder yes. Der Wert von yes oder 1 erlaubt die Darstellung eines Rahmens. Ein Wert von no oder 0 unterdrückt die Ausgabe eines Rahmens.
longdesc
ist die URL-Adresse eines HTML-Dokuments, das eine ausführlichen Beschreibung des Frames enthält. Das Attribut ist dafür gedacht, mehr Informationen zur Verfügung zu stellen, als das title-Element darstellen kann.
marginheight
setzt einen Abstand nach unten und nach oben zwischen Framerahmen und Inhalt und wird in Pixel angegeben. Bei unrealistischen Werten ignoriert der Browser das Attribut.
marginwidth
setzt einen Abstand nach links und nach rechts zwischen Framerahmen und Inhalt und wird in Pixel angegeben. Wenn unrealistische Werte angegeben werden, ignoriert der Browser das Attribut.
name
eine Zeichenfolge, die den Frame identifiziert. Der Name muss eindeutig sein und darf nur einmal im Dokument vorkommen.
noresize
verhindert Änderungen der Framegröße durch den Benutzer.
scrolling
legt eine horizontale und vertikale Scrollleiste fest, die im Frame erscheint. Wenn der Inhalt größer ist als der Frame, erlaubt sie dem Besucher, aufwärts und abwärts oder nach rechts und links zu scrollen, um den gesamten Inhalt zu sehen. Die drei möglichen Werte sind: yes, womit festgelegt wird, dass stets eine Scrollleiste erscheint, no, womit nie eine Scrollleiste erscheint, und auto, das die Scrollleiste einspielt, wenn sie erforderlich ist. Wenn kein Wert angegeben wird, ist die Voreinstellung auto.
src
gibt die URL-Adresse einer HTML-, ASP-, PHP- oder anderen Seite an. Der Inhalt der referenzierten URL wird im Frame dargestellt.

Zum Seitenanfang

   

Galileo Design

Copyright © 2000 - 2010 Media Engineering Alle Rechte vorbehalten
Design + Programmierung Media Engineering Ulrike Häßler 50226 Frechen-Königsdorf • Impressum und Nutzungsbestimmungen