HTML-Tutorial

 

9. Frames

Frames werden dazu verwendet, den Bildschirminhalte auf mehrere Bereiche aufzuteilen. Die Anordnung und die Größe der Frames können Sie dabei frei bestimmen.
Frames sind immer dann sinnvoll einzusetzen, wenn Sie beispielsweise die Navigation vom eigentlichen Inhalt trennen möchten. So muss nicht die komplette Navigation immer neu geladen werden. Auch ein Einsatz in Bildergalerien könnte sinnvoll sein. So lässt sich ein Bereich des Bildschirms mit Vorschaugrafiken versehen, der andere Bereich zeigt die Bilder dann in voller Größe an.

 

9.1 Frames definieren

Frames werden mit dem Tag <frameset> eingeleitet.

Beispiel:

<html>
<head>
  <title>Überschrift der Seite</title>
</head>

<frameset cols="20%,60%,20%>
<frame name="Links" src="/links.htm">
<frame name="Mitte" src="/mitte.htm">
<frame name="Rechts" src="/rechts.htm">

<noframes>
  <body>
  <h1>Dieser Bereich wird nur dann angezeigt, wenn der Browser keine Frames darstellen kann</h1>
  </body>
</noframes>
</frameset>

</html>


Anzeigebeispiel:

links mitte rechts

 

Erläuterung:
Wie Sie sehen, wird eine HTML-Datei mit Frames etwas anders aufgebaut, als eine Datei ohne Frames. Noch vor dem <body>-Tag wird das Frameset definiert. Nach der Frameset-Definition folgt ein <noframes>-Bereich, in dem dann schlussendlich auch der <body>-Bereich eingefügt wird. Der <noframes>-Bereich ist wichtig, um einen Alternativtext für Browser anzeigen zu können, die keine Frames unterstützen.

Hinweis:
Jedes Frame sollte, so wie im Beispiel angegeben, einen bestimmten Namen erhalten. Dies ist für die Navigation wichtig. Möchten Sie, anhand des Beispiels, aus der Navigation heraus einen Inhalt öffnen, so muss die Zielangabe für den Link mit dem Attribut target="Mitte" angegeben werden. Ansonsten wird der Link im gleichen Frame geöffnet.

 

9.2 Verschachtelte Frames

Auch verschaltete Frames sind möglich.

Beispiel:

<frameset cols="20%,*>
  <frame name="Links" src="/links.htm">
    <frameset rows="20%,*>
      <frame name="Oben" src="/oben.htm">
      <frame name="Unten" src="/unten.htm">
    </frameset>
</frameset>


Anzeigebeispiel:

Links Oben
Unten
 

Erläuterung:
Das Sternchen bei der Breitenangabe bedeutet, dass das nicht definierte Frame (in Bezug auf die Breite) den restlichen Platz in dem Frameset für sich beanspruchen kann.


9.3 Scrollbalken

Normalerweise werden Frames automatisch mit einem Scrollbalken versehen, sobald der Inhalt des Frames größer ist, als in das Frame selbst. Um dieses Verhalten zu unterbinden, ist das Attribut scrolling="no" vonnöten.


Beispiel:

<frameset cols="20%,* scrolling="no">
  <frame name="Links" src="/links.htm">
    <frameset rows="20%,*>
      <frame name="Oben" src="/oben.htm">
      <frame name="Unten" src="/unten.htm">
    </frameset>
</frameset>


Hinweis:
Die Scrollbalken zu unterbinden ist nicht empfehlenswert! Die Webseite könnte dadurch für Ihre Besucher unzugänglich werden, wenn diese eine niedrige Bildschirmauflösung eingestellt haben!


9.4 Veränderung der Framegröße unterbinden

Standardmäßig können Frames vom Benutzer in Ihrer Größe verändert werden. Dazu muss der Besucher einfach an den Rand des Framesets klicken und kann diesen dann durch Ziehen vergrößern oder verkleinern.
Um dies zu unterbinden, ist der Einsatz des Attributs noresize nötig.


Beispiel:

<frameset cols="20%,*>
  <frame name="Links" src="/links.htm" noresize>
    <frameset rows="20%,*>
      <frame name="Oben" src="/oben.htm" noresize>
      <frame name="Unten" src="/unten.htm" noresize>
    </frameset>
</frameset>


9.5 Rahmen der Frames verbergen

Standardmäßig werden im Browser Rahmen um die Frames angezeigt. Diese lassen sich jedoch mit den Attributen border="...", frameborder="...", und framespacing="..." ausblenden oder verbreitern.

Beispiel:

<frameset cols="20%,*>
  <frame name="Links" src="/links.htm" frameborder="0" framespacing="0" border="0">
    <frameset rows="20%,*>
      <frame name="Oben" src="/oben.htm" frameborder="0" framespacing="0" border="0">
      <frame name="Unten" src="/unten.htm" frameborder="0" framespacing="0" border="0">
    </frameset>
</frameset>


Erläuterung:
Mit diesem Beispiel würden keine Rahmen um die Frames mehr angezeigt. Außerdem wird der Abstand zwischen den Framefenstern (framespacing="0") ebenfalls auf 0 gesetzt.


Kommentar schreiben


Sicherheitscode
Aktualisieren