SELFHTML/Navigationshilfen HTML/XHTML Frames |
Der Web-Browser verwaltet die Scrollbars (Bildlaufleisten) eines jeden Framefensters normalerweise automatisch. Wenn kein Blättern erforderlich ist, um den gesamten Fensterinhalt anzuzeigen, erhält das Fenster keine Scrollbars. Wenn der Inhalt größer ist, werden die Framefenster automatisch mit Scrollbars ausgestattet. Sie können jedoch erzwingen, dass ein Framefenster in jedem Fall Scrollbars bzw. keine Scrollbars hat.
Anzeigebeispiel: So sieht's aus
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html> <head> <title>Text des universellen Titels</title> </head> <frameset cols="250,*"> <frame src="verweise.htm" name="Navigation" scrolling="no"> <frame src="startseite.htm" name="Daten" scrolling="yes"> <noframes> <p>Dieses Projekt verwendet Frames. Bei Ihnen werden keine Frames angezeigt.</p> </noframes> </frameset> </html> |
Durch die Angabe scrolling="yes"
in einem <frame>
-Tag erzwingen Sie, dass das Anzeigefenster dieses Framefensters in jedem Fall Scrollbars besitzt. Durch scrolling="no"
verhindern Sie, dass das Framefenster Scrollbars erhält, selbst wenn der Inhalt länger ist. Ebenfalls möglich ist die Angabe scrolling="auto"
, die jedoch mit der Voreinstellung (Scrollbars bei Bedarf anzeigen) identisch ist und daher weggelassen werden kann.
Wenn Sie das Scrollen des Fensterinhalts verhindern, können Inhalte, die größer sind als das Fenster, nicht vollständig angezeigt werden. Verwenden Sie scrolling="no"
daher nur, wenn Sie sicher sind, dass der Fensterinhalt vollständig in das Frame-Fenster passt. Die Angabe ist zum Beispiel sinnvoll, wenn in einem Frame-Fenster dauerhaft ein Logo angezeigt werden soll und sonst nichts. Bei größeren Inhalten, vor allem in Framefenstern mit relativer Größe, sollten Sie mit dem Ausschalten der Scrollbars vorsichtig sein - bedenken Sie, dass nicht alle Anwender die gleiche Bildschirmauflösung wie Sie haben.
Sie haben die Möglichkeit, den Abstand zwischen Fensterrand und dem angezeigten Inhalt eines Frame-Fensters genau zu justieren. Auf diese Weise können Sie zum Beispiel breitere Seitenränder in einem Frame-Fenster erzeugen. Wenn Sie einen festen Inhalt, etwa ein Logo, in einem Frame-Fenster anzeigen wollen, können Sie das Logo durch Justage der Abstände exakt in einem Frame-Fenster platzieren.
Anzeigebeispiel: So sieht's aus
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html> <head> <title>Text des universellen Titels</title> </head> <frameset cols="250,*"> <frame src="verweise.htm" name="Navigation" scrolling="no" marginwidth="3" marginheight="30"> <frame src="startseite.htm" name="Daten" marginwidth="60" marginheight="30"> <noframes> <p>Dieses Projekt verwendet Frames. Bei Ihnen werden keine Frames angezeigt.</p> </noframes> </frameset> </html> |
Durch das Attribut marginwidth=
[Pixel] in einem <frame>
-Tag bestimmen Sie den Abstand zwischen rechtem bzw. linkem Fensterrand und dem Fensterinhalt in diesem Framefenster (margin = Rand, width = Breite). Durch das Attribut marginheight=
[Pixel] bestimmen Sie den Abstand zwischen oberem bzw. unterem Fensterrand und dem Fensterinhalt (height = Höhe). Linke und rechte Ränder sind immer gleich groß, ebenso obere und untere.
Sie können zu beiden Werten Angaben machen, aber auch nur zu einem der beiden.
Mit den Angaben marginwidth="0" marginheight="0"
sollte der Fensterinhalt exakt in der linken oberen Ecke beginnen. Leider fügt Netscape 4.x bei der Anzeige doch immer noch ein Pixel "Seitenrand" ein. Als Alternative dazu bleibt nur, den Inhalt mit Hilfe von CSS Stylesheets absolut zu positionieren mit top:0px
und left:0px
.
Normalerweise kann der Anwender in einem angezeigten Frameset die Größe der einzelnen Framefenster verändern, indem er mit der Maus auf die Rahmen zwischen Framefenstern positioniert und durch "Ziehen" die Größenverhältnisse der Framefenster einstellt. In vielen Fällen ist das auch sinnvoll, und Sie sollten dem Anwender diese Freiheit lassen. Wenn Sie aber beispielsweise ein Frame-Fenster mit einem fixen Inhalt, etwa einem Logo, haben, können Sie verhindern, dass der Anwender die Fenstergröße verändern kann.
Anzeigebeispiel: So sieht's aus
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html> <head> <title>Text des universellen Titels</title> </head> <frameset cols="250,*"> <frame src="verweise.htm" name="Navigation" scrolling="no" noresize> <frame src="startseite.htm" name="Daten"> <noframes> <p>Dieses Projekt verwendet Frames. Bei Ihnen werden keine Frames angezeigt.</p> </noframes> </frameset> </html> |
Durch das Attribut noresize
in einem <frame>
-Tag verhindern Sie, dass der Anwender die Größe des Framefensters verändern kann (noresize = no resize = keine Größenveränderung).
Nicht nur das Framefenster, für das Sie das Attribut notieren, kann dann nicht mehr in der Größe verändert werden, sondern auch alle benachbarten Framefenster nicht. Im obigen Beispiel kann der Anwender also weder das linke noch das rechte Framefenster verändern. Das ist eigentlich logisch, aber Sie sollten diese Folgewirkung berücksichtigen, wenn Sie erwägen, in einem Frame-Fenster das Verändern der Größe zu verhindern.
Wenn Sie XHTML-konform arbeiten wollen, müssen Sie das hier beschriebene Attribut in der Form noresize="noresize"
notieren. Weitere Informationen dazu im Kapitel über XHTML und HTML.
Sie können die normalerweise sichtbaren Rahmen zwischen Framefenstern unterdrücken. Bei unsichtbaren Fensterrahmen wirken die Frame-Fenster wie nahtlos aneinander gefügte Flächen am Bildschirm. Leider gibt es hierbei bis auf den heutigen Tag Differenzen zwischen den Browsern, die dieses Feature seit langem unterstützen, und dem W3-Konsortium, das eine andere Variante durchsetzen will, an die sich die Browser aber nicht halten. Sie haben also die Auswahl, HTML-konform zu schreiben, und die weit verbreiteten Browser ignorieren Ihre Angaben, oder Sie schreiben für die Browser und verzichten auf die HTML-Konformität.
Anzeigebeispiel: So sieht's aus
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html> <head> <title>Text des universellen Titels</title> </head> <frameset cols="250,*"> <frame src="verweise.htm" name="Navigation" scrolling="no" frameborder="0"> <frame src="startseite.htm" name="Daten"> <noframes> <p>Dieses Projekt verwendet Frames. Bei Ihnen werden keine Frames angezeigt.</p> </noframes> </frameset> </html> |
Anzeigebeispiel: So sieht's aus
<html> <head> <title>Text des universellen Titels</title> </head> <frameset cols="250,*" frameborder="0" framespacing="0" border="0"> <frame src="verweise.htm" name="Navigation" scrolling="no"> <frame src="startseite.htm" name="Daten"> <noframes> <p>Dieses Projekt verwendet Frames. Bei Ihnen werden keine Frames angezeigt.</p> </noframes> </frameset> </html> |
Wenn Sie HTML-konform arbeiten wollen, notieren Sie in einem gewünschten <frame>
-Tag das Attribut frameborder=
. Mit frameborder="0"
unterdrücken Sie die sichtbaren Rahmen zwischen dem betroffenen Framefenster und allen seinen Nachbarfenstern, und mit frameborder="1"
zeigen Sie die sichtbaren Rahmen explizit an (letzteres entspricht allerdings der Voreinstellung).
Bei der Syntax, die von den Browsern unterstützt wird, werden die dazu nötigen Attribute im einleitenden <frameset>
-Tag desjenigen Framesets notiert, für das die Angaben dann gelten - sie betreffen dann also alle Rahmen innerhalb des Framesets.
border=
[Pixel] ist Netscape-Syntax und bestimmt die Breite der Rahmen in Pixel. Erlaubt sind Zahlenwerte von 0 (keine Rahmen anzeigen) und größer (border = Rahmen).
frameborder=
[1/0 oder yes/no] bedeutet nach Microsoft-Syntax die Angabe, ob 3D-Rahmen angezeigt werden sollen oder nicht. Dieses Attribut ist also gleichnamig mit dem HTML-standardkonformen Attribut, bedeutet jedoch etwas anderes.
framespacing=
[Pixel] ist Microsoft-Syntax und bestimmt den Abstand zwischen Frame-Fenstern, mithin also die Breite der Rahmen in Pixel (spacing = Abstand).
Nur mit frameborder="0" framespacing="0"
(also mit beiden Angaben) unterdrücken Sie beim MS Internet Explorer die Rahmen konsequent. Wenn Sie nur frameborder="0"
angeben, zeigt der Internet Explorer sichtbare Abstände zwischen den Frame-Fenstern an, allerdings nicht die üblichen 3D-Rahmen, sondern flache Zwischenräume. Um die Rahmen beim Internet Explorer und bei Netscape zu unterdrücken, müssen Sie alle drei Angaben frameborder="0" framespacing="0" border="0"
notieren (wie im obigen Beispiel 2).
Wenn Sie die Rahmen zwischen den Frame-Fenstern unterdrücken, hat der Anwender keine Möglichkeit, die Größe der Frame-Fenster zu verändern. Testen Sie Projekte mit rahmenlosen Frames deshalb möglichst unter mehreren Bildschirmauflösungen und mit unterschiedlich großem Anzeigefenster.
Sie können erzwingen, dass Rahmen zwischen den Frame-Fenstern farbig dargestellt werden. Diese Angaben gehören jedoch nicht zum HTML-Standard und erzeugen ungültiges HTML.
Anzeigebeispiel: So sieht's aus
<html> <head> <title>Text des universellen Titels</title> </head> <frameset cols="250,*" bordercolor="#FFFF00"> <frame src="verweise.htm" name="Navigation" scrolling="no"> <frame src="startseite.htm" name="Daten"> <noframes> <p>Dieses Projekt verwendet Frames. Bei Ihnen werden keine Frames angezeigt.</p> </noframes> </frameset> </html> |
Mit den Attribut bordercolor=
im obersten <frameset>
-Tag können Sie eine Rahmenfarbe für alle Fensterrahmen bestimmen. Dabei gelten die Regeln zum Definieren von Farben in HTML.
In der HTML-Referenz finden Sie Angaben darüber, welche Attribute erlaubt sind und was bei den einzelnen Attributen zu beachten ist:
Attribut-Referenz für Framesets (<frameset>...</frameset>
)
Attribut-Referenz für Frames (<frame>...</frame>
)
Verweise bei Frames | |
Framesets und Frames definieren | |
SELFHTML/Navigationshilfen HTML/XHTML Frames |
© 2001 selfhtml@teamone.de