# Frames

Frames sind eine Erfindung von Netscape und haben sich innerhalb kürzester Zeit zum echten Standard entwickelt. Unter Frames versteht man Rahmen, die das Browserfenster in kleinere Fenster unterteilen. Diese Fenster können getrennt voneinander angesprochen werden. Es ist z.B. möglich, das in einem Fenster ein Video läuft und in einem anderen ein erläuternder Text zu sehen ist.
CAB unterstützt erst ab Version 2.0 Frames, unter der aktuellen Webspace-Version (1.45) treten grobe Anzeigefehler auf.

### Definition eines Frames

Die Frame-Definition hat ihren Platz vor dem <BODY>-Tag. Sie wird meistens auf der Eingangsseite plaziert und muß bei den Seiten auf denen die Eingangsseite verweist, nicht neu angegeben werden.
Mit <frameset> wird die Framedefinition begonnen. Innerhalb von <frameset> kann folgendes angegeben werden rows= oder cols=. Rows bedeutet Zeile und Cols Spalte. Man kann das Fenster also in Spalten oder Zeilen unterteilen. Die Angabe hinter rows= bzw. cols= erfolgt in Pixeln oder Prozent. Abgeschlossen wird die Frame-Definition mit </frameset>
Beispiel
<frameset cols="40%,*">
<frame src="hallo.html" name="links">
<frame src="index.html" name="rechts">
</frameset>
Das Browserfenster wird in dem Beispiel in zwei Spalten unterteilt: Die linke Spalte nimmt 40% ein, die rechte den Rest (also 60%). Das Sternchen teilt dem Browser mit, daß der gesamte Rest für das andere Frame (in dem Fall das rechte) zu verwenden ist.
Innerhalb der <frameset>-Definition steht <frame src=. Dieses Tag teilt dem Browser mit, welche Datei in dem Framefenster dargestellt werden soll. Das erste (linke) Frame soll die Datei 'hallo.html' darstellen. Mit name= gibt man dem Frame einen Namen, den man später bei Verweisen benutzen kann.
Zeilen kann man analog definieren.

### Kombinationen von Frames

Es ist selbstverständlich auch möglich, Frames in Frames und unterschiedliche Frame-Arten miteinander zu kombinieren:
<frameset cols="40%,*">
<frame src="hallo.html" name="links">
<frameset rows="20%,*">
<frame src="index.html" name="oben">
<frame src="titel.html" name="unten">
</frameset>
</frameset>
Die Datei 'hallo.html' wird in dem linken Frame dargestellt, das 40% des Browsers einnimmt. Für den rechten Teil wird jedoch eine neue <frameset> begonnen, um eine erneute Unterteilung zu bewirken. Der rechte Teil wird in zwei Zeilen unterteilt: Die obere nimmt 20% ein, die untere den Rest. Anschaulicher wird's, wenn Ihr Browser Frames beherrscht, den dann können sie sich jetzt einmal die fertigen Frames ansehen.

### Zusätzliche Attribute für Frames

In der Regel läßt sich jedes einzelne Frame in seiner Größe verändern. Außerdem fügt der Browser Scrollpfeile dazu, wenn der Inhalt des Framefensters größer ist als das Framefenster. Dies kann man jedoch unterbinden. In das Tag <frame src= können zusätzlich folgende Angaben gemacht werden:

- noresize: Die Größe des Framefensters kann nicht mehr verändert werden
- scrolling=no: Es ist kein Scrolling mehr möglich
- marginheight=Zahl: vertikaler Abstand des Frameinhalts vom Rand des Frames. 'Zahl' ist eine Pixelangabe.
- marginwidth=Zahl: horizontaler Abstand des Frameinhalts vom Rand des Frames. 'Zahl' wird in Pixeln angegeben.

Beispiel
<frame src="hallo.html" name="gruss" noresize scrolling=no marginheight=5 marginwidth=0>

### Namen für Frames

Das man jedem Frame einen Namen geben kann wurde schon erwähnt, aber nicht wofür man es gebrauchen kann. Bei jedem Verweis können Sie angeben, in welchem Framefenster er dargestellt werden soll:
Beispiel
<a href="bla.html" target="gruss">
Mit target= wird dem Browser mitgeteilt, in welchem Frame die Datei angezeigt werden soll, wenn der Verweis angewählt wird. Fehlt target=, wird die Datei in dem Framefenster angezeigt, in dem der Verweis angewählt wurde.
Namen für Frames dürfen frei gewählt werden, wie üblich sollte man auf Umlaute verzichten und den Namen nicht zu lang werden lassen. Eine weitere Einschränkung ist, daß das erste Zeichen kein Unterstrich sein darf. Der Grund dafür sind einige reservierte Namen für Frames:

- _parent: Das übergeordnete Fenster stellt den Inhalt dar. Mit _parent werden meistens die Frames entfernt.
- _blank: Der Browser soll das Verweisziel in einem neuen Fenster anzeigen.

### Ärger mit Frames

Zuerst sollten Sie sich merken, die Frames zu entfernen, wenn Sie auf eine fremde Seite verweisen.
Beispiel
<a href="http://ourworld.compuserve.com/homepages/pcgeek/proj64.htm" target="_parent">Project 64</a>
Project 64
Diese Seite benutzt selber Frames. Wenn Sie also Ihre Frames nicht entfernen, werden die Frames von 'Project 64' in dem Frame dargestellt, wo der Verweis steht. Das sieht nicht nur äußerst unschön aus, sondern ist teilweise unlesbar, da natürlich jede Seite davon ausgeht, das ganze Browser-Fenster für sich alleine zu haben! Also: Bei Verweisen auf fremde Seiten immer target="_parent" angeben.

Ärger kann außerdem mit Benutzern entstehen, die einen älteren Browser benutzen (dazu zählt auch CAB 1.5!), der noch keine Frames darstellen kann. Die Frame-Definition wird vom Browser dann nämlich ignoriert. Deshalb sollte man hinter der Frame-Definition eine Alternativ-Seite anfügen, die den Inhalt der Hauptseite enthält und ermöglicht, auch ohne Frames auf alle Seiten zu gelangen. Ein Frame-fähiger Browser wird sich übrigens nicht um diese Alternativ-Seite kümmern.

Nächstes Kapitel: Meta-Informationen.

Start * Das WWW * Inhalt