4.2
TIPPS
-
Gestaltung mit FRAMES
(Komplett überarbeitet 2003-10-08)
Ich setze an dieser Stelle die Grundlagen für die Erstellung von Framesets
als bekannt voraus und werde daher lediglich beschreiben,
wie und warum ich meine eigenen Framesets genau so angelegt habe,
wie sie zur Zeit sind.
Basis-Wissen (und mehr!) über den Aufbau von Framesets
findet man zum Beispiel, wie so vieles, bei
SelfHTML
.
Meine Seiten-Struktur besteht (wie viele andere)
nicht aus einem einzigen Frameset, sondern aus mehreren,
welche (bei mir innerhalb ein und derselben HTML-Datei)
ineinander verschachtelt sind.
Hierfür gibt es verschiedene Gründe,
auf die ich im Folgenden näher eingehen werde.
Vorab aber noch ein paar Worte zu Framesets im Allgemeinen.
Es gibt hier zwei Lager: Die Einen hassen Framesets, die Anderen lieben sie.
Klarer Nachteil von Framesets ist,
dass sie bei umfangreichen Seiten eine enorm präzise Planung und
hohe Disziplin bei der Pflege erfordern.
Wenn man dazu bereit ist,
lässt sich mit Framesets aber Vieles mit einfachem HTML erreichen,
was sonst nur mit tiefgreifenden Kenntnissen spezieller Skript-Sprachen erreichbar ist.
4.2.1
Maximale Breite des Inhalts
( Grafik siehe
Fazit )
Die Gesamt-Breite meiner Seiten-Struktur habe ich auf 800 Pixel optimiert,
da dies das am weitesten verbreitete Format ist.
Damit diese Aufteilung auch bei Browser-Fenstern mit größerer Breite erhalten bleibt,
besteht das erste Frameset aus nur 3 nebeneinander liegenden Frame-Spalten,
von denen ich der mittleren eine feste Breite zugewiesen habe
und den beiden äußeren den Rest (z.B.: *,800,*).
Der eigentliche Internet-Bereich wird also
im mittleren Frame maximal 800 Pixel breit dargestellt,
wogegen die in den seitlichen Füll-Frames dargestellten Seiten
lediglich mit einer passenden Farbe hinterlegt sind.
Okay, die Seiten-Frames nutze ich zwar gelegendlich auch für ein paar Kleinigkeiten,
zum Beispiel das Abspielen der Sound-Files im Hintergrund,
doch sie sind zur Bedienung meiner Internet-Seiten nicht zwingend erforderlich.
Nachtrag: Der oben genannte Wert für die maximale Breite wurde mittlerweile,
wegen der immer höher auflösenden Monitore, schon mehrfach erhöht.
4.2.2
Feste Breite des Rahmens
( Grafik siehe
Fazit )
Um dem Haupt-Inhalt einen umlaufenden(!) Rahmen konstanter Breite zu geben,
besteht er aus einem (Unter-)Frameset mit 9 (3×3) Frames.
Alt: Hierzu wurden 3 Zeilen definiert,
von denen die obere und untere eine feste Höhe haben (z.B. 50,*,50),
und innerhalb jeder Zeile wiederum drei Spalten,
von denen die äußeren feste Breiten haben (z.B. 120,*,50).
Es wurden hierfür 3 Spalten definiert,
von denen die äußeren eine feste Breite haben (z.B. 150,*,50),
und innerhalb jeder Spalte wiederum drei Zeilen,
die oben und unten feste Höhen haben (z.B. 100,*,50).
Die äußeren acht Rahmen-Frames wurden schließlich
mit Hintergrund-Grafiken (zur Zeit Rohre) hinterlegt,
die zusammen diesen Rahmen-Effekt noch besonders heraus stellen.
Im linken, breiteren Rahmen-Frame
(Doppel-Rohr) befindet sich das
allzeit verfügbare Haupt-Menü,
von dem aus der jeweils passende Inhalt angesteuert wird
(Näheres dazu unter "Javascript - Doppelklick").
Die übrigen Rahmen-Frames enthalten neben der Rahmen-Grafik noch Zusatz-Informationen,
wie zum Beispiel Titel-Banner
und Counter, sowie eine Such-Leiste.
4.2.5
Aktualisieren im Frameset unterbinden
(Neuer Tipp 2004-06-18)
Wenn man per Verweis (z.B. Menü-Leiste) eine (Ziel-)Seite aufruft,
die (per target=) in einem anderen (Ziel-)Frame angezeigt wird,
und man nochmals auf diesen Verweis klickt,
dann wird die angeforderte Seite erneut geladen (Reload),
obwohl dies oft gar nicht nötig wäre.
Um das
Neuladen einer aktuell angezeigten Seite zu
unterbinden,
hilft ein
kleiner Trick
(der zumindest beim IE6 und Firefox funktioniert
- in anderen Browsern hab ich es nicht ausprobiert,
kann dort aber nicht schaden).
Man setzt einen
Anker in die
Ziel-Seite (am besten weit oben):
<a name="zielanker">...</a>
... und
verweist dann auf eben diesen
Anker der Ziel-Seite
(von der verweisenden Seite aus):
<a href="zielseite.shtml#zielanker" target="zielframe">...</a>
Der Browser ruft dann beim Anklicken des Verweises
eine bereits im Zielframe befindliche Ziel-Seite nicht erneut auf,
sondern springt ohne diese
(Lade-)Verzögerung
direkt zum gesetzten Ziel-Anker.
(Wenn gar kein Anker vorhanden ist,
funktioniert es zwar meist trotzdem,
doch wäre das kein "sauberes" Skript.
Könnte also in manchen Browsern Fehler-Meldungen hervorrufen.)
Bei mehreren Ankern auf derselben Seite ist natürlich darauf zu achten,
dass jeder Anker einen eigenen Namen bekommt.
PS: Dieser Tipp funktioniert nicht nur in Framesets.
Für andere Anwendungen (z.B. CSS-Menüs) müsste man es halt testen.
4.2.6
Fazit
Diese Seiten erscheinen mit einem Rahmen,
der sich der Größe des Browser-Fensters dynamisch anpasst.
Die Gesamt-Breite des Haupt-Inhaltes ist allerdings
auf maximal 800 Pixel begrenzt und mittig positioniert.
Über diese Breite hinaus werden die seitlichen Flächen
mit neutralem Hintergrund aufgefüllt.
Grundaufbau der Verschachtelung (vereinfachtes Beispiel) :
<frameset cols="*,800,*"> (a)
<frame src="rahmen_ganz_links.shtml">
<frameset cols="150,*,50"> (b)
<frameset rows="100,*,50"> (b)
<frame src="rahmen_oben_links.shtml">
<frame src="hauptmenue.shtml">
<frame src="rahmen_unten_links.shtml">
<
/frameset>
<frameset rows="100,*,50"> (b)
<frame src="rahmen_oben_mitte.shtml">
<frameset cols="*,150"> (c)
<frame src="startseite.shtml">
<frame src="startseite_submenue.shtml">
<
/frameset>
<frame src="rahmen_unten_mitte.shtml">
<
/frameset>
<frameset rows="100,*,50"> (b)
<frame src="rahmen_oben_rechts.shtml">
<frame src="rahmen_seite_rechts.shtml">
<frame src="rahmen_unten_rechts.shtml">
<
/frameset>
<
/frameset>
<frame src="rahmen_ganz_rechts.shtml">
<
/frameset>
Reload
Private WebSite by
Ulli U. alias Tarkus
© 1998-2025
tarkus-online.de/webdesign_tipps_frames.shtml
21,066
bytes saved on
2013-08-11 at 22:39 (CEST)