HP-Hilfe 28 - Frame(set)s

HP-Hilfe-Seite, 28


Bei Frames scheiden sich anscheinend die Geister ;-)

Ich persönlich finde sie nützlich, und es gibt praktisch keinen Browser mehr, der sie nicht darstellen kann.

http://www.subotnik.net/html/frames.html
Neuerdings sind ja wohl iFrames (code s. "codes")"in Mode", aber ich sehe da keinen Sinn drin, denn wenn ich den Inhalt einer anderen Seite als iFrame einblende, dann kann ich doch auch auf die andere Seite verlinken, oder?!
Ich selbst habe nun ein paar Seiten mit iFrames, und zwar, wenn eine Seite zu groß ist: dann habe ich die zweite Seite als iFrame eingebunden. Und bei den Städte- und Urlaubsseiten Zusammenfassungen, z.B. bei "Norden" die einzelnen Städteseiten so eingebunden, nur Städte mit wenig Fotos direkt auf der Seite. Inzwischen die meisten wieder entfernt, statt dessen ein Button bzw. ein kleines Zweier-Frameset: oben Navi, unten die Seite.

Code für iFrame:

<td class="top"><iframe width="100%" (oder z.B. "700") height="400" src="DATEI.htm"></iframe>
<td class="top"><ilayer width="100%" height="400" src="DATEI.htm"></ilayer>
Oder als Name das erste Bild und bei den Bildern als Zielframe den Framenamen, hier also "Bildframe":
<iframe width="100%" (oder z.B. "700") height="400" src="BILD.jpg" name="Bildframe"></iframe>
Man kann so auch z.B. eine Galerie realisieren, s. unter
Modelle und dann "Puppenkönig" (unten).
---------------------------------------------------------------------------------------------------
man sollte dann aber auch ein Button anbieten:
direkt nach dort:
<input type="button" value="TEXT" onClick="self.location.href='DATEI.htm'">
dieser "Standart"-Button öffnet die Datei im selben Fenster.
<input type="button" style="background:#800000; color:white" value="Bonn" onClick="javascript:window.open('bonn.htm');">
dieser js-Button öffnet in neuem Fenster, Button ist eingefärbt, Beispiel unten:
iFrame ~ Transparenz machen
der Iframetag:
<iframe width=XXX height=XXX src=XXX allowTransparency="true" frameborder=XXX name=XXX></iframe>
und so die Seiten, die man darin aufruft:
<body STYLE="background-color:transparent">

Und die Navigation ist bei Framesets am einfachsten, denn bei den ach so modernen Tabellen-Pages scrollt ja die Navi immer nach oben!

Das Frameset wird mit dem Tag <frameset> geöffnet und mit </frameset> geschlossen. Folgende Attribute definieren das Aussehen des Frames näher:
Handelt es sich um einen senkrechten Frame, so wird die Framebreite durch das Attribut "cols" festgelegt. Bei waagerechten Frames wäre das entspr. Attribut "rows". Die Breite des ersten Frames wird entweder in Pixel oder in Prozent angegeben. Will man die ganze Browserbreite ausfüllen, schreibt man nach der ersten Angabe ein Komma und setzt dann ein Sternchen (*). Ansonsten halt eine zweite Zahl. Man muß sich also am Anfang auf Prozent oder Pixel festlegen.

"frameborder" = Rand, da gibt es nur die Angaben "Yes" und "No". Also z.B. frameborder ="no".

Mit "border" kann man durch eine Pixelangabe die Breite des Rahmens bestimmen.

Dann gibt es noch "framespacing". Hier wird der Leerraum zwischen den beiden Frames festgelegt. Normalerweise setzt man diesen Wert auf Null.
Frame-Set einrichten: (ich habe es verschiedenfarbig gekennzeichnet)
unter
</head> und über </html> wird der code eingefügt, dabei steht "cols="140"" für die Breite des linken Frames (=navi.htm), "rows="85"" für die Höhe des oberen Frames (=oben.htm), start.htm ist dann die Hauptseite im rechten unteren Feld (Frame).
Der Hauptframe heißt also "rechts", damit sich also Links im Hauptframe öffnen, muss man an den Link target="rechts" hängen, will man ein anderes Frameset aufrufen, dann besser in extra Fenster, also target="_blank"
Man kann zwar auch mit einem Klick z.B. 2 Links in 2 Fenstern öffnen lassen, aber sowas ist mir zu "scriptlastig"! (
Nachzulesen bei Self-HTML).

Als Beispiel nehme ich die Seite der Prinzengarde Rheinbach (ist leider inzwischen geändert):

Frameset "PriGa Rheinbach"

Es ist also ein "klassischer Dreierframe", wobei der Rand des oberen Frames nicht zu sehen ist, er ist über der Laufschrift.

<frameset cols="140, *" framespacing="0" border="0" frameborder="0">
            <frame src="
navi.htm" name="links">
                  <frameset rows="85,*">
                  <frame src="
oben.htm" name="oben">
                         <frame src="
start.htm" name="rechts">
                  </frameset>
        
<noframes>
        </noframes>
</frameset>
ich habe die Rahmen auf 0 gesetzt - ist eine häufige Newbee-Frage, wie das geht, ich habs mal blau eingefärbt ;-)
"noframes"-Bereich s. weiter unten!

Diesmal andere Aufteilung:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd"><html>

<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>3er-Frameset, von Diethelm Glaser</title>
</head>

<frameset cols="230,*" framespacing="0" border="0" frameborder="0">
<frameset rows="180,*">
<frame src="3logo.htm" name="linksoben" scrolling="no"
noresize>
<frame src="3navi.htm" name="linksunten" scrolling="no"
noresize>
</frameset>
<frameset cols="*">
<frame src="3main.htm" name="main" scrolling="no"
noresize>
</frameset>
<noframes>
<body bgcolor="#EAD5D5">
<p><font color="#800000"><b>Pech gehabt, ohne Frames nix zu
sehen. Aber die einzelnen Frame-Seiten kann man direkt
aufrufen: </b></font><a href="3navi.htm"><b>Navigation</b></a><font
color="#800000"><b> und dann die einzelnen Links. </b></font><font
color="#800000" size="2">Diese Seite wurde am 17. März
2005 erstellt, letzte Änderung 17. März 2005. © Diethelm
Glaser 2005</font></p>
</body>
</noframes>
</frameset>
</html>

hier der screenshot: 5er Frame


Ein Frameset ruft ja nur die Seiten in entsprechender Größe auf (oder auch nicht, dafür ist der "Noframe"-Bereich), das heißt also, auch die entsprechenden Seiten müssen alle erstellt und hochgeladen werden!

4er-Frameset

inzwischen habe ich fast bei allen meinen Framesets einen unteren Frame angehängt, das sieht dann so aus: Frameset "GZSZ"
Der Code dazu:
ein Frameset aus 4 Dateien:
<frameset cols="150, *" framespacing="0" border="0" frameborder="0">
      <frame
src="gzsz-links.htm" name="links">
      <
frameset rows="78,*,33">
            <
frame src="gzsz-oben.htm" name="oben">
            <
frame src="gzsz1.htm" name="rechts">
            <
frame src="gzsz-unten.htm" name="unten">
      <
/frameset>
<noframes>
</noframes>

<
/frameset>
Und hier ein anderer Vierer-Frame: 4er-Frameset
<frameset cols="140, *,100" framespacing="0" border="0" frameborder="0">
      <frame src="navi.htm" name="links">
          <frameset rows="85,*">
              <frame src="oben.htm" name="oben">
              <frame src="main.htm" name="main">
    </frameset>
<frame src="rechts.htm" name="rechts">
      

  <frameset>
   <noframes>
   </noframes>
</frameset>

5er-Frameset

Und neulich fragte einer bei "Piranho" nach einem 5er-Frame, hier ist er:

ein Frameset aus 5 Dateien:
  <frameset cols="140, *,100" framespacing="0" border="0" frameborder="0">
      <frame src="navi.htm" name="links">
          <frameset rows="85,*,40">
              <frame src="kopf.htm" name="oben">
              <frame src="start.htm" name="main">
              <frame src="unten.htm" name="unten">
      <frame src="rechts.htm" name="rechts">
    </frameset>
    </frameset>
  <frameset>
   
<noframes>
   </noframes>
</frameset>

hier der screenshot: 5er Frame

um einen Link vom linken (Navi-)Frame im Hauptfenster zu öffnen, muss man den Link um target="FRAMENAME" ergänzen, in meinem Fall also target="rechts"

5er-Frameset anders angeordnet:

<html>

<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>5er-Frameset, von Diethelm Glaser</title>
</head>

<frameset rows="18%,82%">
<frameset cols="18%,82%">
              <frame src="logo.htm" name="linksoben" scrolling="no" noresize>
              <frame src="banner.htm" name="rechtsoben" scrolling="no" noresize>
                            </frameset>
                            <frameset cols="18%,75%,7%">
                            <frame src="menu.htm" name="menue" scrolling="no" noresize>
                            <frame src="main.htm" name="main" scrolling="yes" noresize>
                            <frame src="ticker.htm" name="ticker" scrolling="no" noresize>
                            </frameset>
              <noframes>
<body bgcolor="#EAD5D5">
<p><font color="#800000"><b>Pech gehabt, ohne Frames nix zu
sehen. Aber die einzelnen Frame-Seiten kann man direkt
aufrufen: </b></font><a href="menu.htm"><b>menu.htm</b></a><font
color="#800000"><b> und dann die einzelnen Links. </b></font><font
color="#800000" size="2">Diese Seite wurde am 09. Februar 2004
erstellt, letzte Änderung 09.Februar 2004. © Diethelm
Glaser 2004</font></p>
</body>
</noframes>
</frameset>
</html>
nie vergessen, den Frames Namen zu geben! Und am besten immer alles kleinschreiben.

hier der screenshot: 5er Frame

ich habe die Seiten des Framesets 'mal gezippt, hier der download


Es nützt ja dem Besucher nichts, wenn er nur liest, dass sein Browser keine Frames darstellt, man muss ihm schon eine Navigation anbieten. Aus dem Grunde habe ich auch keine Javescript (js)-Navigation, weil viele js nicht aktiviert haben!

Mein "no-frames"-Bereich sieht folgendermaßen aus:
<noframes>
<p><font color="#800000"><b>Pech gehabt, ohne Frames nix zu sehen. Aber die einzelnen Seiten kann man direkt aufrufen:</b></font><a href="navi.htm"><b>navi.htm</b></a><font color="#800000"><b>und dann die einzelnen Links oder die Übersicht über die ganze Homepage:</b></font><a href="../hp-gramm.htm">
<b>../hp-gramm.htm</b></a><font color="#800000"></font><font
color="#800000" size="2"><b>Diese Seite wurde am XXX erstellt, letzte Änderung XXX. ©
Diethelm Glaser 2001 </b></font></p>
</body>

</noframes>
also liegt die Navigation im gleichen Ordner und die "hp-gramm.htm" eine Ebene tiefer, also auf der Hauptebene.
Die Links machen sich trotz der Anweisung
target="rechts" in neuem Fenster auf, weil ja kein Frameset aufgerufen wird!

wer die Seite direkt aufgerufen hat, bitte hier klicken, um zur Startseite zu kommen!
Diese Seite wurde am 18. Juni 2003 erstellt, letzte Änderung am 13. Juni 2018
© Diethelm Glaser, alle Rechte vorbehalten | Seite 1.531

dieser Frameset gesamte HP
seit 3.11.2016
seit 26.8.2010
seit 19.05.2007