FAQs Screendesign  back to last page

Frames - No Frames
Das ist hier die Frage!

... frei nach Shakespeare

Wenn schon Frames, dann aber bitte richtig!

Vorwort:
In den letzten 2 Jahren sind Frames in Web-Seiten ziemlich in den Verruf gekommen.

Da liest und hört man :

- Frames fressen die Ressourcen der User PC's und die des Internets.

- Viele Surfer hassen angeblich Frames sogar...

Ich frage mich:

    a) wie bitte haben die Leute den Ressourcen Verlust gemessen?
    b) Warum hassen Surfer Frames ?

Frames wenn sie sinnvoll eingesetzt werden, bringen doch durchwegs Vorteile im Surfalltag!

Oder haben diese Gerüchte nur Werbeagenturen in die Welt gesetzt.
Weil ihr ©Netobject Fusion oder ©Tarantula Editor keinen optimalen Frame Support anbietet? ;-)

Alternativ wird heute sehr stark auf ein "glattes - typografisches " Werbeagenturen Design gesetzt. (mein persönlicher Hilfsausdruck für Sitedesigns, die die Zeitschrift ©PAGE & ©SCREEN vorschlägt)

Besonders in "Business to Business Sites" und "Online Medien" kommen sie sehr stark in Anwendung. Manchmal ist man sich gar nicht mehr sicher, ob man diese Seite schon besucht hat, so ähnlich sehen sich manche....

Im Einsatz von Frames erkenne ich eigentlich nur zwei große Nachteile:

a) Der Ausdruck der Seiten mit älteren Browser Modellen  wird schwierig

b) Seiten die täglich oder oft gewartet werden, sind umständlicher zum Handhaben

Eine Sache bereitet mir bis heute noch Kopfzerbrechen. Warum werden senkrechte Navigationsleisten zu 95% nur an die linke Seite des Framesets gestellt ?
War der Frames Erfinder Linkshänder? - egal, jeder wie er möchte...

Aber nun zum wesentlichen:

Das folgende Beispiel basiert auf ein 3 teiliges Set, mit einer Navigationleiste, einem Querframe oben und einem Hauptframe.

Sample

HOW TO!

Das optimale Frameset:

Ein klassischer Frameset wie er mit den meisten Frame-Editoren erstellt wird ohne sichtbaren Rahmen sieht im HTML so aus:

<html>
<head>
<title>Frameset in Prozent Angabe </title>
</head>
<frameset cols="15%,85%" frameborder="0" border="0" framespacing="0">
<frame name="left" noresize src=" navigation.htm" scrolling="yes">
<frameset rows="10%,90%" frameborder="0" border="0" framespacing="0">
<frame name="top" noresize src="topleiste.htm " scrolling="no">
<frame name="main" noresize src="main.htm" scrolling="auto">

</frameset>
</frameset>
<noframes>
<body>
</body>
</noframes>
</html>

Auf dem ersten Blick ist in diesem Frameset alles OK und ist schon tausendfach verwendet worden.

Bohrt man aber das Innenleben des Framesets auf, kommen jede Menge Fehler an das Tageslicht.

Details die "ungünstig" sind im Web Einsatz:

    1) Man sollte keine % Angaben verwenden, sondern die Breite in Pixel angeben
    2) Scrolling = "YES", ist deplaziert (unbrauchbar)
    3) NORESIZE fehlt
    4) MARGIN Angabe fehlt

Begründung:

1) Verwende ich im Frameset eine Prozent Angabe, verändern sich die Seiten wenn das Browserfenster verkleinert wird nicht statisch. Die Frameinhalte verschieben sich.

Auch ist es sinnvoll, den Teil des Framesets (z.B. die MAIN Seite) die sich ins unendliche Strecken soll, mit einem " * " zu lösen (keine Pixel Angaben).

2) Was den Frames Erfinder von Netscape mit dem Eintrag scrolling="YES" eingefallen ist, kann glaube ich heute keiner mehr nachvollziehen.
Setze ich diesen Eintrag, erscheint im Framefenster unten ein Scrollbalken der nicht aktiv ist. Auch wenn die Seite gar keinen Anlaß zum Scrollen gäbe. Gibt das Sinn?

- Also Prinzipiell, verwendet man ausschließlich den TAG: scrolling="AUTO" , wenn ich Scrolling anbieten möchte.

3) NORESIZE benötigt das Framset nicht unbedingt, aber ich kann damit verhindern, daß Surfer mit der Maus meine Frameborder verschieben und die Formatierungen der Seiten dadurch verloren geht.

4) Die MARGIN Angaben ist ebenfalls kein muß, aber ich kann damit schon beim Seitenstart festlegen wie weit der Seiteneinzug in den Frame Seiten sein soll.


So sollte der optimierte Set aussehen:

<html>
<head>
<title>Frameset in Pixel Angabe</title>
</head>

<frameset cols="150,*" frameborder="0" border="0" framespacing="0">
<frame name="left" noresize src="navigation.htm" scrolling="auto" topmargin="2" leftmargin="2" marginheight="2" marginwidth="2" noresize>
<frameset rows="100,*" frameborder="0" border="0" framespacing="0">
<frame name="top" noresize src=" top" scrolling="no" topmargin="2" leftmargin="2" marginheight="2" marginwidth="2">
<frame name="main" noresize src=" main.htm" scrolling="auto" topmargin="2" leftmargin="10" marginheight="2" marginwidth="10">

</frameset>
</frameset>
<noframes>
<body>
</body>
</noframes>
</html>

*) Der Eintrag: topmargin="2" leftmargin="2" marginheight="2" marginwidth="2"

topmargin & leftmargin benötigen MS Browser für den Seiteneinzug

marginheight & marginwidth benötigen NS Browser

Man beachte, beide Browser interpretieren den Seiteneinzug anders.

MS macht zu NS einen Unterschied von 3 Pixel bis zur Vers. 4.7 (6.0+ nicht mehr).

(Netscape verwendet standardmäßig einen automatischen Seiteneinzug von 3 Pixel (- Vers. 4.7) wenn KEIN Margin Eintrag verwendet wirdl)

Also ist es im Webdesign unumgänglich einen Offline Testlauf im NS und MS durchzuführen!


Kapitel 2

Tips & Tricks bei der Verwendung von FRAMES:

1. Optimierung der Seiten:

Wenn ich Frames in einer Seite ohne Border verwende, dann sollte der Gesamtoptik zuliebe die Linkleiste so optimiert sein, daß beim Seitenstart kein Scrollbalken in der Navigation sichtbar ist.

Sample

Als Crossbrowser Maß für eine 800x600 Pixel Optimierung (entspricht einem 15" Monitor) , kann die "Scroll-lose" Gesamtgröße mit 780 x 390 Pixel angenommen werden.
(Fenstergröße der Browser auf einem 15" Bildschirm, inkl. eingeschalteter Navigationsleisten)

Bleibe ich z. B. in meiner Senkrechten Navigationsleiste unter 300 Pixel, kann ich theoretisch diesen Framesplit auf scrolling ="no" setzen.


2. Ein kleines sinnvolles Script

Wenn spezifische Unterseiten meiner Homepage extern ge-linkt werden und dadurch meine Navigationsleiste nicht angezeigt wird:

Ich füge in allen Unterseiten folgendes Script in den BODY Bereich ein:

<body onload="if (!top.main) top.location.href = 'http://www.meine-domain.com/index.htm';" bgcolor="#FFFFFF">

Mit diesem kleinen ONLOAD Script erreiche ich, daß sobald eine meiner Unterseiten extern aufgerufen wird, daß FRAMESET mitstartet. (in meinem Beispiel heißt meine Startseite der Homepage "index.htm" und der Framename: "main")


3. Die Verwendung von Java Script im Frameset:

Grundlegend kann man dazu sagen, daß die 4.* Browser Generation keine Probleme damit hat. Abwärtskompatibel wird es mit 3.* Versionen problematisch. Der MS Explorer wirft Java Script Fehlermeldungen aus und weigert sich die Seite zu starten.
NS führt keine ACTION Scripts aus (z.B. "open window").

Möchte ich Crossbrowser Webseiten erstellen, ist es besser darauf zu verzichten!

3.1 Wie kann ich mir mit Java Script Vorteile verschaffen in Webseiten mit Frames für die Browser 4.* Generation?:

Ich kann mir im Frameset den <HEAD> Bereich zu nutze machen um mit einem IMAGE PRELOAD Java Script die wichtigsten Images (Firmenlogo, Navigations Buttons) meiner Webseite in den Surfer-Cache zu laden.
So stehen sie sobald die Webseiten angezeigt werden, sofort sichtbar zur Verfügung.
Ich darf aber die Anzahl der Images nicht übertreiben, da sonst der Frameset zu lange braucht um sich aufzubauen.

4. Framesets für Suchmaschinen optimieren:

Die allgemeine Aussage, daß Suchmaschinen Probleme haben die META TAGS, Key - Wörter und Seitenbeschreibungen aus Frameseiten auszulesen, stimmt nicht.

Werden alle Informationen richtig in den Frameset eingetragen, funktioniert es klaglos und das Ranking ist auch nicht schlechter als in No Frames Seiten.

Wichtig ist nur, daß ich die Spielregeln mancher Suchmaschinen mit einbeziehe.

Altavista, Fireball, Infoseek, Excite, Lycos - lesen den META TAG via eines "WebSpiders".

YAHOO - liest den TITEL und die erste Zeile der Webseiten (unterhalb des BODY Bereiches) und sucht nach <H1 - H5> Einträgen

Netcaster - wird nach Angabe besucht und wenn für gut befunden aufgenommen ?!

(Ich habe hier nur die wichtigsten und meist besuchten Suchdienste aufgeführt)

Hier ein Example eines optimalen META TAGS für Frames Seiten:

<html>
<head>
<TITLE>Meine Webseiten Beschreibung </TITLE>

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">


<META NAME="robots" CONTENT="all ">

<META NAME="keywords" CONTENT=" Meine,Schlüssel,Wörter (mit Beistrich getrennt) ">

<META NAME="author" CONTENT="Name">

<META NAME="publisher" CONTENT="Der Publisher">

<META NAME="page-topic" CONTENT="Bildung,Internet (Beispiel) ">

<META NAME="page-type" CONTENT="Private Homepage (Beispiel)">

<META NAME="audience" CONTENT="all">

<META NAME="copyright" CONTENT="Name -E-mail - URL">

<META NAME="description" CONTENT=" Beschreibung des Seiteninhaltes ">

<META NAME="classification" CONTENT=" Beschreibung der Themen in Schlagworten, mit Beistrich getrennt ">

<META NAME="rating" Content="general">
</head>

- F R A M E S E T -

<noframes>
<body>
<!---Keywords (seperat mit Kommas) EX: clipart, graphics, icons"--->
<!-- Die Seitenbeschreibung (description)-->

<H1>Die Keywords (noch einmal direkt in die Seite schreiben) EX: clipart graphics icons</H1> <br>
<H1>Die Seitenbeschreibung mit Link zur Startseite (description)</H1>
</body>
</noframes>
</html>

Auf den beliebten Satz:
"Sorry, Ihr Browser kann keine Frames darstellen ...",

kann man heute verzichten, 2.0 MS Browser, AIR Mosaic und andere ältere Exoten die keine Frames darstellen können, kommen heute fast nicht mehr zum Einsatz.


Wichtig ist noch, daß ich den META TAG der Startseite (Mit anderem Seitentitel und Beschreibung) auch in den Unterseiten verwende.


<< Klicke hier für geeignete HTML Literatur zu diesem Thema>>

© g¿smo 2001
http://www.gismo.at