StarHTML HTML-Wissen Frames (Fensteraufteilung)

Frames


Frames (engl. Rahmen; gespr. Fräims) sind eine neue Art der Gestaltung von Internetseiten. Dabei wird eine Internetseite in mehrere HTML-Dateien geteilt, die nebeneinander auf dem Bildschirm erscheinen und durch Rahmen getrennt sind. Die nebenstehende Abbildung zeigt ein typisches Frameset (Frame-Gruppen).

Definieren von Frames


Bei solchen Framesets gibt es immer eine Datei, die "am höchsten steht" und mehrere andere HTML-Dateien auf der Seite vereint. Der Aufbau dieser höchsten Datei weicht vom Grundgerüst von HTML-Dateien ab. Der Body-Teil enthält die Seite, wie sie angezeigt wird, wenn der Browser keine Frames "versteht". Zwischen Seiten-Kopf und -Körper, also zwischen den Tags </head> und <body> wird das Frameset definiert.
Zuerst wird immer ein Frameset definiert und dann die einzelnen Frames:

<frameset [rows/cols]="*,*">
 <frame src="[Datei]" name="[Name]">
 <frame src="[Datei]" name="[Name]">
</frameset>

Sie benutzen in der ersten Zeile entweder rows (rows = Reihen), wenn die Frames übereinander liegen sollen, oder cols (cols = columns = Spalten) wenn die Frames nebenenander sein sollen. Außerdem legen Sie dahinter in Anführungszeichen die Breite bzw. Höhe der Frames fest:
Und zwar in Pixeln, Prozent des Fensters (Zahl + %) oder, wenn Sie für alle anderen Frames bereits eine Größe festgelegt haben, zufällig mit * (der Rest des Fensters wird für dieses Frame verwendet). Die Angaben werden mit Kommas getrennt. Wenn Sie mehr als zwei Frames in einem Framesets definieren wollen, setzen Sie dahinter weitere Größen, durch Kommas getrennt.

Dann definieren Sie die Frames mit <frame src="*" name="*"> . Hinter src= geben Sie in Anführungszeichen den Dateinamen der Datei an, die in diesem Frame beim ersten Laden der Seite erscheinen soll. Dafür gelten dieselben Regeln, wie beim Definieren von Verweisen.
Hinter name= geben Sie in Anführungszeichen den Namen des Frames an. Da _self, _new, _parent, _blank und _top in HTML bereits definierte Frame-Namen sind, dürfen Sie keine Frames so benennen. Frame-Namen sind wichtig, wenn Sie mit einem Verweis in einem Frame den Inhalt eines anderen ändern möchten (siehe unten).
(Natürlich darf jeder Frame-Name nur einmal pro Frameset vorkommen.)

<frameset rows="20%,80%">
 <frame...>
 <frame...>
</frameset>
<frameset cols="200,*">
 <frame...>
 <frame...>
</frameset>

Innerhalb eines Frameset kann auch noch ein Frameset anstelle eines Frames definiert werden. Dieses Frame wird dann noch in weitere Frames geteilt. Sie müssen nur statt <frame src="[Datei]" name="[Name]"> mit <frameset [rows/cols]="*,"> ein neues Frameset definieren, für die einzelnen Frames Quelldatei und Name festlegen und dahinter das Frameset beenden. Am Ende wird natürlich das oberste Frameset extra beendet.

<frameset cols="40%,60%">
 <frame...>
 <frameset rows="50,*">
  <frame...>
  <frame...>
 </frameset>
</frameset>
<frameset rows="50%,50%">
  <frameset cols="50%,50%">
   <frame...>
   <frame...>
  </frameset>
  <frameset cols="50%,50%">
   <frame...>
   <frame...>
  </frameset>
</frameset>

Eigenschaften von Frames


Folgende Optionen können im Frameset-Tag <frameset ...> erscheinen:

BefehlBedeutung
border=0
frameborder=0
(border = Rahmen) Verhindert die 3D-Rahmen in diesem Frameset.
border=0 für Netscape, frameborder=0 für den IE

Folgende Optionen können im Frame-Tag <frame ...> erscheinen:

scrolling=no (scrolling = blättern) Verhindert Scroll-Leisten in diesem Frame.
scrolling=yes Erzwingt Scroll-Leisten.
marginwidth= (margin = Rand) Hier können Sie den Abstand links und rechts
vom Frame-Inhalt zum Frame-Rand festlegen.
marginheight= Hier können Sie den Abstand oben und unten
vom Frame-Inhalt zum Frame-Rand festlegen.
noresize (noresize = no resize = keine Größenveränderung) Damit verhindern Sie, dass der Nutzer die Größe des Frames ändern kann.

Verweise in Framesets


Sie können ein Frameset beispielsweise dazu nutzen, um mit einem Hauptframe ein anderes zu beeinflussen und so innerhalb eines Projekts zu navigieren. Solche Verweise müssen im Verweis-Tag <a href="*"> die Option target="*" beinhalten. Für * setzen Sie den Namen des Frames ein, in dem die Seite erscheinen soll. Beispiel:

Frameset-Definition: (in der übergeordneten "index.htm")
<frameset cols="200,*">
 <frame src="frame.htm" name="links">
 <frame src="start.htm" name="rechts">
</frameset>

Verweis-Definition: (in der Datei "frame.htm")
<a href="infos.htm" target="rechts">Infos</a>

Soll, wenn ein Verweis angeklickt wird, das Frameset beendet werden, muss die Option target="_parent" in das Verweis-Tag eingefügt werden.
Achtung: Wenn Sie mehrere Framesets ineinander verschachtelt haben, wird damit nur das aktuelle Frameset beendet. Sollen alle Framesets beendet werden, müssen Sie stattdessen _top einfügen.

Praxis:
Verwenden Sie nicht zu viele Frames auf einer Seite, das sorgt bei kleinen Monitoren für Verwirrung und bei ihnen für Dateisalat.


StarHTML HTML-Wissen
Tabellen erstellen und formatieren   Multimedia-Objekte

Martin Zwirner ©12/1999 EMail Online-Forum