scrollen der Navigationsleiste
Nils B.
- html
hallo, ich bin ein Anfänger in HTML, habe aber mittlerweile schon einige Seiten zusammengebastelt...
Ich habe eine Frage zur Navigationsleiste...
Normalerweise habe ich die Navigationsleiste mit einem solchen HTML-Code zusammengestellt:
<frameset cols="20%, 80%" FRAMEBORDER="0">
<frame name="navigation" src="navigation.html" noresize >
<frame name="main" src="main.html" >
</frameset>
In diesem Beispiel klickt man auf die Navigationsleiste und main.html verändert sich - main.html kann man dann entlang scrollen, während die Navigation gleich bleibt.
Aber ich finde es viel besser, wenn die Navigationsleiste mitscrollt, wie z.B.hier (ist jetzt einfach nur ein Beispiel):
http://www.astroportal.com/sternzeichen
----
Abgesehen davon, finde ich es besser, wenn die Seite auf einem weißen Hintergrund "schwimmt", und nicht einfach wie in meinem Beispiel in zwei Seiten geteilt ist...
Diesen Effekt habe ich versucht mit einem großen iframe zu kreieren:
<p align="center">
<iframe name="index" src="index.html" style="width: 900px; height: 10000px" >
</p>
was nicht so richtig klappt... man kann zwar die Texte laden, aber die "height:10000px" sind einfach zu groß....mache ich die aber nicht rein, kann ich wieder nur innerhalb von main.html scrollen, nicht aber die ganze Seite...
der erste Punkt wäre mir erstmal wichtiger.
Ich würde mich über Antworten und Lösungsvorschläge freuen.
Nils
Hallo,
Normalerweise habe ich die Navigationsleiste mit einem solchen HTML-Code zusammengestellt:
<frameset cols="20%, 80%" FRAMEBORDER="0">
<frame name="navigation" src="navigation.html" noresize >
<frame name="main" src="main.html" >
</frameset>
damit hast du dir aber den Vorteil, die Navigation nur einmal pflegen zu müssen, sehr teuer erkauft. Über die Nachteile von Framesets, sowohl für den Autor, vor allem aber für den Nutzer, kannst du im Web reichlich Beiträge finden. Angefangen im hiesigen Forumsarchiv.
> Aber ich finde es viel besser, wenn die Navigationsleiste mitscrollt
> Abgesehen davon, finde ich es besser, wenn die Seite auf einem weißen Hintergrund "schwimmt", und nicht einfach wie in meinem Beispiel in zwei Seiten geteilt ist...
All diese Äußerungen führen zu der Schlussfolgerung: Du möchtest eigentlich keine Frames verwenden. Das ist der richtige Ansatz.
Erstelle deine Seiten also so, dass jedes HTML-Dokument in sich vollständig ist, Navigation und Nutzinhalt also in \*einem\* Dokument enthalten sind.
Damit du die Bereiche, die sich ständig wiederholen (Navigation, Header, Footer) trotzdem nur einmal pflegen musst, kannst du diese Teile des Quelltextes in separate Dateien auslagern und den \*Server\* veranlassen, sie jedesmal einzubinden, wenn das Dokument abgerufen wird. Der Besucher (Browser) merkt von diesem Vorgang dann nichts, er "sieht" ein Dokument aus einem Guss.
In den [FAQ dieses Forums](http://forum.de.selfhtml.org/hilfe/faq.htm#quelltext-auslagern) findest du mehrere Ansätze, wie du das erreichen könntest. Wenn du mit der Umsetzung Schwierigkeiten hast, kannst du gern konkret nachfragen.
> Diesen Effekt habe ich versucht mit einem großen iframe zu kreieren:
> ~~~html
<p align="center">
> <iframe name="index" src="index.html" style="width: 900px; height: 10000px" >
> </p>
Der Ansatz mit dem iframe hat zwar zum Teil die gleichen Nachteile wie die Verwendung eines herkömmlichen Framesets, ist aber etwas günstiger.
Allerdings solltest du dann nicht den Nutzinhalt des Dokuments in ein iframe stecken, sondern die immer gleiche Navigation. So behält jede Seite eine eindeutige URL, und die Navigation wird als iframe einfach "nachgeladen".
So long,
Martin
@@Der Martin:
nuqneH
Allerdings solltest du dann nicht den Nutzinhalt des Dokuments in ein iframe stecken, sondern die immer gleiche Navigation.
Was aber auch nicht praktikabel ist, da man dem Iframe eine feste Höhe geben muss, die benötigte Höhe für die Navigation aber nicht kennen kann (es sei denn, sie besteht nur aus Grafiken). Das mag sich erst ändern, wenn Browser @seamless [HTML5] unterstützen.
Qapla'
vielen Dank erstmal für die schnellen Antworten!
bis jetzt hatte ich das, wie gesagt nur mit Frames gemacht...mein neuer Vorschlag sieht so aus:
<html>
<head>
<title>Index</title>
</head>
<body background="red">
<p align="center">
<iframe name="index" src="index2.html" style="width: 900px; height: 10000px" >
</p>
</frameset>
</body>
</html>
so hat man den eigentlichen index, der mit Frames aufgeteilt ist, integriert:
<html>
<head>
<title>Index2</title>
</head>
<frameset rows="150, *" border="1" bordercolor="blue" frameborder="1" framespacing="1">
<frame name="kopf" src="kopf.html" > <!-- hier soll das Logo, usw. hin-->
<frameset cols="20%, *, 20%">
<frame name="FrameNavigation" src="navigation.html" > <!---Navigationsleiste-->
<frame name="FrameHaupttext" src="haupt1.html" >
<frame name="Werbung" src="werbung.html" > <!--hier soll vielleicht ein ebay banner oder ähnliches hin -->
</frameset>
</frameset>
</html>
Mich würde eure Meinung dazu interessieren.
Das einzige Problem ist, wie ich schonmal gesagt habe, das mit den Height:"10000px" im Iframe...wenn ich das aber nicht mache, scrollt die Navigationleiste nicht mit, sondern nur der haupttext scrollt (es ist etwas schwer auszudrücken, ich hoffe ich versteht was ich meine).
Das mit den Auslagerungen des Quelltextes habe ich ehrlich gesagt noch nicht verstanden.
Nils