Mit Hilfe von Frames können Sie den Anzeigebereich des Browsers in verschiedene, frei definierbare Segmente aufteilen. Jedes Segment kann eigene Inhalte enthalten. Die einzelnen Anzeigesegmente (also die Frames) können wahlweise einen statischen Inhalt (= "non scrolling regions") oder einen wechselnden Inhalt haben. Dabei ist eine frame-übergreifende Parallelkontrolle der einzelnen Frames möglich.
Frames stellen einen Quantensprung in HTML dar. Frames sind kein weiteres Element, um typische Aufgaben der Textverarbeitung zu bewältigen, sondern ein Element, das die spezifischen Eigenschaften der Bildschirmanzeige konsequent nutzt. Frames eröffnen völlig neue Möglichkeiten, um Information hypertextuell (d.h. nicht-linear) aufzubereiten.
Frames werden ab Netscape 2.0
unterstützt. Angaben der Firma Netscape zufolge ist das Frame-Konzept
mit dem WWW-Konsortium abgesprochen und als künftiger offizieller
Bestandteil von HTML vorgesehen.
Die Abbildung stellt den Inhalt des gesamten Anzeigefensters des Browsers schematisch dar. Wie Sie unschwer erkennen können, erlaubt das Frame-Konzept Hypertext-Funktionalitäten, die bislang nur mit Hilfe professioneller Hypertext-Systeme (Guide, Augment usw.) realisierbar waren.
Frames können ihre Größe jederzeit ändern. So können Sie im obigen Beispiel den "Haupt-Informations-Frame" über den Bereich des "Zusatz-Informations-Frames" ausdehnen, falls keine Zusatzinformationen zur aktuellen Hauptinformation existieren.
Mit Frames in Verbindung mit Formularen können Sie anwenderfreundliche Datenbank-Oberflächen realisieren. So können Sie z.B. in einem linken Frame ein Formular für Sucheingaben zur Verfügung stellen, während rechts daneben in einem anderen Frame die jeweils aktuellen Suchergebnisse präsentiert werden.
Beispiel
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN" "html.dtd"> <html> <head> <title>Frame-Test</title> </head> <frameset ...> ... Frame-Definitionen ... </frameset> </html><frameset ...> leitet die Definition eines Frame-Sets ein. Dahinter folgen die Definitionen der einzelnen Frames. </frameset> schließt die Definition des Frame-Sets ab.
Beispiel 1
<frameset rows=20%,80%> ... Dadurch ergeben sich zwei Frames, deren Inhalt hier bestimmt wird... </frameset>
Beispiel 2
<frameset cols=40%,60%> ... Dadurch ergeben sich zwei Frames, deren Inhalt hier bestimmt wird... </frameset>
Beispiel 3
<frameset cols=40%,60%> <frameset rows=100%> ... Dadurch ergibt sich ein Frame, dessen Inhalt hier bestimmt wird... </frameset> <frameset rows=20%,80%> ... Dadurch ergeben sich zwei Frames, deren Inhalt hier bestimmt wird... </frameset> </frameset>
Durch die Angabe rows= (Prozent) im einleitenden Frameset-Tag bestimmen Sie die "Zeilen" und deren Höhen. Die Höhenangaben der einzelnen Zeilen trennen Sie durch Kommata. Anstelle der Prozentangaben können Sie auch absolute Zahlenwerte (Anzahl in Pixel) benutzen, z.B. rows=120,520. Im Zusammenhang mit absoluten Zahlenwerten können Sie auch eine Wildcard verwenden. So bewirkt z.B. z.B. rows=120,*,120 ein Set, bestehend aus drei Reihen für Frames, wobei die erste und die letzte Zeile jeweils 120 Pixel hoch sind (z.B. für Kopf- und Fußzeilen), während die Höhe der mittleren Reihe, markiert durch einen Stern, variabel ist und durch die Größe des Anzeigefensters beim Anwender bestimmt wird.
Durch die Angabe cols= (Prozent) im einleitenden Frameset-Tag bestimmen Sie die "Spalten" und deren Breiten. Hierbei gelten die gleichen Regeln wie bei den "Zeilen".
Wenn Sie Anordnungen wie in Beispiel 3 erreichen wollen, müssen Sie mehrere, verschachtelte Frame-Sets definieren. Gehen Sie dabei hierarchisch vor. In Beispiel 3 besteht die erwünschte Gesamtanordnung zunächst einmal aus zwei Spalten. Daß die rechte Spalte nochmals unterteilt werden soll, ist zunächst sekundär. Als erstes definieren Sie in diesem Fall also ein Frame-Set mit zwei Spalten, in Beispiel 3 mit <frameset cols=40%,60%>. Da Ihre gedachte Tabelle in der rechten Spalte in zwei Zeilen unterteilt werden soll, brauchen Sie im nächsten Schritt Angaben zu den Zeilen. Diese Angaben müssen Sie für jede definierte Spalte machen. Da die linke Spalte in Beispiel 3 über die gesamte Fensterhöhe gehen soll, notieren Sie für diese Spalte eine Zeile mit der Angabe <frameset rows=100%>. Die rechte Spalte, die in Beispiel 3 zwei Zeilen enthalten soll, definieren Sie durch die entsprechenden Angabe <frameset rows=20%,80%>.
Beispiel
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN" "html.dtd"> <html> <head> <title>Frame-Test</title> </head> <frameset cols=40%,60%> <frameset rows=100%> <frame src="verweise.htm"> </frameset> <frameset rows=20%,80%> <frame src="kurzinfo.htm"> <frame src="langinfo.htm"> </frameset> </frameset> </html>
Mit <frame src=> "Dateiname" definieren
Sie innerhalb eines Frame-Sets den Inhalt des bzw. der zugehörigen
Frames. Bei der Adressierung der Dateien, die in einem Frame angezeigt
werden sollen, gelten die gleichen Regeln wie bei der Referenzierung von
Grafiken.
Definieren Sie für jede "Zelle" Ihrer gedachten Tabelle einen Frame (vgl. Beispiel).
Wenn Sie zu Beginn noch keinen Inhalt in einem Frame anzeigen wollen, lassen Sie die Angabe src= einfach weg und notieren ein nacktes <frame>. Im obigen Beispiel könnten Sie z.B. die beiden rechten Frames zunächst leer lassen, bis der Anwender aus dem linken Frame einen Verweis ausgewählt hat.
Wenn Sie einen Frame für die Anzeige von Inhalten aus Fremdanwendungen reservieren wollen, notieren Sie anstelle von <frame> einfach <noframe>.
Beispiel
<frameset cols=40%,60%> <frame src="verweise.htm" scrolling=yes> <frame src="bilder.htm" scrolling=no> </frameset>Durch die Angabe scrolling=yes im Definitions-Tag eines Frames erzwingen Sie, daß das Anzeigefenster des Frames in jedem Fall Scroll-Leisten besitzt. Durch die Angabe scrolling=no verhindern Sie dies. Wenn Sie das Scrollen des Fensterinhalts verhindern, können Inhalte, die größer sind als das Fenster, nicht vollständig angezeigt werden.
Per Voreinstellung stattet Netscape seine Frame-Fenster dann mit einer Scroll-Leiste aus, wenn der Fensterinhalt es erfordert.
Beispiel
<frameset cols=40%,60%> <frame src="verweise.htm" scrolling=yes marginwidth=5 marginheight=12> <frame src="bilder.htm" marginwidth=5 marginheight=12> </frameset>Durch die Angabe marginwidth= (Pixel) im Definitions-Tag eines Frames bestimmen Sie den Abstand zwischen rechtem bzw. linkem Fensterrand und dem Fensterinhalt. Durch die Angabe marginheight= (Pixel) bestimmen Sie den Abstand zwischen oberem bzw. unterem Fensterrand und dem Fensterinhalt.
Beispiel
<frameset cols=40%,60%> <frame src="verweise.htm" scrolling=yes marginwidth=5 marginheight=12> <frame src="bilder.htm" marginwidth=5 marginheight=12 norsize> </frameset>Durch die Angabe norsize (Pixel) im Definitions-Tag eines Frames verhindern Sie, daß der Anwender die Größe des Frame-Fensters verändern kann.
Beispiel
<frameset cols=40%,60%> <frame src="verweise.htm"> <frame src="bilder.htm" name="Anzeigefenster"> </frameset>Durch die Angabe name= "Fenstername" im Definitions-Tag eines Frames weisen Sie dem Frame einen Namen zu. In Verweisen können Sie diesen Frame unter dem vergebenen Namen adressieren.
Fensternamen müssen in Anführungszeichen stehen, dürfen nicht zu lang sein und nur aus Buchstaben, Ziffern und dem Unterstrichen bestehen. Bei selbst vergebenen Namen darf das erste Zeichen des Namens kein Unterstrich sein.
_blank: Das Verweisziel wird in einem neuen Fenster angezeigt.
_self: Das Verweisziel wird im gleichen Fenster angezeigt wie der Verweis.
_parent: Das Verweisziel wird im übergeordneten Fenster angezeigt. Falls es kein übergeordnetes Fenster gibt, wird das Verweisziel im gleichen Fenster angezeigt wie der Verweis selbst.
_top: Das Verweisziel wird im ersten Fenster einer Fensterherarchie angezeigt. Falls es kein übergeordnetes Fenster gibt, wird das Verweisziel im gleichen Fenster angezeigt wie der Verweis selbst.
Hinweis: Die Syntax bei den Verweisen und die genaue Bedeutung von Fensterhierarchien stand zum Redaktionsschluß dieses Dokuments noch nicht fest.