Frameset durch CSS ersetzen, aber wie richtig?
Möchte nicht in jeder Webseite das Nav-Menü pflegen müssen
Hallo ihr Wissenden!
wurde freundlich dazu überredet für den Verein in dem meine Frau ist eine kleine Webseite einzurichten. Da das nicht so mein eigentlicher Wirkungsbereich ist, habe ich mich schlau gemacht, wie man Webseiten heutzutage so vernünftig aufsetzt. (soll ja eine pflegeleichte HP werden)
Das erste was mir da über den Weg gelaufen ist, Frames sind böse! OK, dachte ich dann schau dir mal CSS genauer an, gesagt getan. Ist ja alles gut und schön wie toll das alles ohne Frames geht, aber dickes dickes ? ist geblieben:
Wie trenne ich den normalen Content von der Navigation???
Bei allen Beispielen die ich gelesen habe, kopiere ich jedesmal die komplette Startseite und ändere nur den Inhalt der Seite. Ok, und was mach ich wenn ich mal an der Navigationsleiste was ändern will/muss?? Dann ackere ich alle 20 (Unter-)Seiten (die ich habe) durch oder wie??
Oder habe ich in den letzten eineinhalb Tagen was überlesen?
Macht mich bitte schlauer!
Ralf
Hallo ihr Wissenden!
wurde freundlich dazu überredet für den Verein in dem meine Frau ist eine kleine Webseite einzurichten. Da das nicht so mein eigentlicher Wirkungsbereich ist, habe ich mich schlau gemacht, wie man Webseiten heutzutage so vernünftig aufsetzt. (soll ja eine pflegeleichte HP werden)
Das erste was mir da über den Weg gelaufen ist, Frames sind böse! OK, dachte ich dann schau dir mal CSS genauer an, gesagt getan. Ist ja alles gut und schön wie toll das alles ohne Frames geht, aber dickes dickes ? ist geblieben:
Wie trenne ich den normalen Content von der Navigation???
Bei allen Beispielen die ich gelesen habe, kopiere ich jedesmal die komplette Startseite und ändere nur den Inhalt der Seite. Ok, und was mach ich wenn ich mal an der Navigationsleiste was ändern will/muss?? Dann ackere ich alle 20 (Unter-)Seiten (die ich habe) durch oder wie??
Oder habe ich in den letzten eineinhalb Tagen was überlesen?
Macht mich bitte schlauer!
Ralf
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 68216
Url: https://administrator.de/contentid/68216
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
5 Kommentare
Neuester Kommentar
Guten Morgen nobody,
das Stichwort lautet "DIV - Container". Damit kannst du eine Art unsichtbare Tabelle erzeugen und nach belieben selber gestalten. Bei Css4You findest du einige Vorlagen bzw. Ideen.
Beispiel:
HTML/PHP-Code:
Die CSS-Datei sieht dazu so aus (pagestyle.css):
In diesem Beispiel hast du oben über die ganze Breite einen Container. Darunter dann 3 Spalten (Navi, Inhalt und rechts auch noch mal einen Spalte). Darunter befindet sich dann wieder eine Zeile über die ganze Seite (Footer).
Jetzt hätten wir mal das Grundgerüst...mit PHP hast du die Möglichkeit Module zu bilden. Jede Seite, die als Link (z.B. Startseite, Impressum, News, etc...) eingebunden werden soll, würde ich in den Ordner "module" speichern.
Jedes Modul muss dann noch registiert werden. Oben im Code gibt es am Anfang eine "include" Zeile. In dieser Datei "section.php" im Verzeichnis "include" gibt es ein Array, dass so aussieht:
Der Vorteil ist der, der Arrayname kann frei gewählt werden und ist somit unabhänig vom Modulnamen. (siehe "news"). Somit kann man als Besucher nicht nachvollziehen, woher die Seite inculdiert wird.
Zuletzt brauchst du noch die Datei "inhalt.php". Dort wird überprüft, ob das aufgerufene Modul existiert. Falls die Datei im Array (siehe oben) gefunden wird, wird diese Seite eingebunden. In anderen Fall kannst du direkt auf die Startseite verweisen oder einfach eine Fehlerseite ausgeben:
Die Links sehen dann so aus:
So, ich hoffe ich habe nichts vergessen und du blickst einigermaßen durch. Ist vllt. ein bisschen viel Info auf einmal...
@master of disaster
Grüße
Dani
das Stichwort lautet "DIV - Container". Damit kannst du eine Art unsichtbare Tabelle erzeugen und nach belieben selber gestalten. Bei Css4You findest du einige Vorlagen bzw. Ideen.
Oder habe ich in den letzten eineinhalb Tagen was überlesen?
Würde ich so nicht sagen...einen Teil auf jeden Fall, "DIV - Container".Beispiel:
HTML/PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
<http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>
<?
include_once ("include/section.php");
?>
<? error_reporting(E_All); ?>
<html>
<head>
<!-- # Einbinden der CSS Dateien -->
<link rel="stylesheet" type="text/css" href="styles/pagestyle.css">
</head>
<body>
<!-- #ganz oberer Div-Holder -->
<div id="root">
<!-- #Banner -->
<div id="banner">
<? include ("top.php"); ?>
</div>
<!-- #Container - linke Seite, Mitte, rechte Seite -->
<div id="container">
<!-- #Linke Seite -->
<div id="links" class="spalte">
MENÜ <!-- <? include ("menu.php"); ?> -->
</div>
<!-- #Mitte - Inhalt -->
<div id="mitte" class="spalte">
CONTENT <!-- <? include ("inhalt.php"); ?> -->
</div>
<!-- #Rechte Seite -->
<div id="rechts" class="spalte">
<? include ("ads.php"); ?>
</div>
<!-- #ENDE - Container -->
</div>
<!-- #Footer -->
<div id="footer">
FOOTER <!-- <? include ("footer.php"); ?> -->
</div>
<!-- #css-float beenden -->
<br style="clear:both;">
</div>
</body>
</html>
*
{
margin: 0px 0px 0px 0px;
padding: 0px 0px 0px 0px;
}
body
{
font-family: Arial,Verdana,Helvetica;
font-size: 12px;
background-color: #HF5F4F3;
}
/*Beinhaltet nur das DIV-Gerüst der index.php Seite*/
#root
{
width: 1000px;
margin: auto;
background-color: #gggggg;
}
#banner
{
width: 1000px;
height: 100px;
background-image: url(../images/banner-1000.jpg);
background-repeat: no-repeat;
}
#container
{
width: 1000px;
height: auto;
min-height: 600px;
overflow: hidden;
}
#container .spalte
{
padding-bottom: 1001em; /* X + padding-bottom */
margin-bottom: -1000em; /* X */
}
#links
{
width: 140px;
background-color: #8BD78B;
float: left;
}
#mitte
{
width: 720px;
background-color: #FAF0E6;
float: left;
}
#rechts
{
width: 140px;
background-color: #8BD78B;
float: left;
}
#footer
{
width: 1000px;
height: 60px;
background-color: #73C873;
margin-bottom: none;
clear: both;
}
Jetzt hätten wir mal das Grundgerüst...mit PHP hast du die Möglichkeit Module zu bilden. Jede Seite, die als Link (z.B. Startseite, Impressum, News, etc...) eingebunden werden soll, würde ich in den Ordner "module" speichern.
Jedes Modul muss dann noch registiert werden. Oben im Code gibt es am Anfang eine "include" Zeile. In dieser Datei "section.php" im Verzeichnis "include" gibt es ein Array, dass so aussieht:
<?php
/*Ein leeres Feld erstellt*/
$dateien = array();
$dateien['startseite'] = "module/startseite.php";
$dateien['news'] = "module/aktuelles.php";
...
Zuletzt brauchst du noch die Datei "inhalt.php". Dort wird überprüft, ob das aufgerufene Modul existiert. Falls die Datei im Array (siehe oben) gefunden wird, wird diese Seite eingebunden. In anderen Fall kannst du direkt auf die Startseite verweisen oder einfach eine Fehlerseite ausgeben:
if((isset($_GET['mod'])) AND (isset($dateien[$_GET['mod']])))
{
include $dateien[$_GET['mod']];
}
else
{
include $dateien['startseite'];
}
Die Links sehen dann so aus:
<a href='index.php?mod=startseite'>Startseite</a>
So, ich hoffe ich habe nichts vergessen und du blickst einigermaßen durch. Ist vllt. ein bisschen viel Info auf einmal...
@master of disaster
dann hättest du noch die Möglichkeit mit iframes zu arbeiten, oder mit java.
Klingt fast nach einer Ver.....!! Dann kann er gleich bei Frames bleiben und muss nicht pfuschen... Hast du schon mal mit Java eine Seite erstellt?? Schon aus dem Grund, dass jeder i - Punkt als Object programmiert werden muss, würde mir die Lust verderben (wir reden hier von einer Hobbyseite, nicht Firmenseite). Grüße
Dani