n.o.b.o.d.y
Goto Top

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! face-wink 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? face-sad

Macht mich bitte schlauer! face-smile

Ralf

Content-ID: 68216

Url: https://administrator.de/contentid/68216

Printed on: December 9, 2024 at 20:12 o'clock

Masterofdisaster2
Masterofdisaster2 Sep 09, 2007 at 07:02:25 (UTC)
Goto Top
Also in php kannst du das mit dem Befehl Include machen.
sieht dann ungefähr so aus <? @include("Navigationsseite.irgendwas"); ?>
dann hättest du noch die Möglichkeit mit iframes zu arbeiten, oder mit java.

hoffe ich konnte dir zumindestens einen Ansatz liefern.
mfg
Dani
Dani Sep 09, 2007 at 07:22:22 (UTC)
Goto Top
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.

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>
Die CSS-Datei sieht dazu so aus (pagestyle.css):
*
{
	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;
}
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:
<?php
/*Ein leeres Feld erstellt*/
$dateien = array();

$dateien['startseite'] 			=	"module/startseite.php";  
$dateien['news'] 				=	"module/aktuelles.php";  
...
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:
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... face-smile

@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). face-wink


Grüße
Dani
n.o.b.o.d.y
n.o.b.o.d.y Sep 09, 2007 at 07:55:20 (UTC)
Goto Top
Moin, moin!

Ok, vielen Dank erstmal!!

Ich weiß jetzt, dass ich also mein PHP-Grundwissen wieder auspacken muß um das hinzubekommen, denn ich wollte das schon von Anfang an gleich richtig machen.
Das es draußen regnet und es nicht so aussieht, als wenn das heute noch anders wird, werde ich mich damit mal den lieben langen Sonntag beschäftigen. face-smile

Grüße aus dem nassen Norden der Republik!

Ralf
n.o.b.o.d.y
n.o.b.o.d.y Sep 09, 2007 at 10:02:14 (UTC)
Goto Top
Hallo,

was mir so eben so einfällt:

Kann ich nicht einfach den Navigationsmenüteil der Webseite in eine PHP-Seite (als html+css!) packen, mit include einbinden und fertig?
Quasi nur den Umweg über PHP zum einbinden nehmen, um mit der PHP-Seite einfach HTML drazustellen.

Ok, hört sich ein bisschen krank an, aber könnte das gehen?


<edit:14:22 Uhr>

@Dani

Nach einem Ausflug zu Joomla hab ich mir mal Deine Strickmustervorlage zusammengebaut. Das kann ich doch sehr gut als Grundgerüst verwenden! (werd ich auch tun! face-smile )

Danke!

Ralf
Dani
Dani Sep 09, 2007 at 12:36:14 (UTC)
Goto Top
Hi,
Kann ich nicht einfach den Navigationsmenüteil der Webseite in eine PHP-Seite (als
html+css!) packen, mit include einbinden und fertig?
Na klaro....habe ich doch auch gemacht (siehe 1. Code-Beispiel). Einfach ausgelagert....


Grüße
Dani