css statt frames?

rikola

Foren Gott
Beiträge
2.133
Hi, keine Ahnung, ob html eine Skriptsprache ist, eigentlich ja eher nicht. Hab keine bessere Rubrik gefunden.

Also:
Es wird oft auf frames geschimpft und gesagt, dass man css stattdessen benutzen sollte. Waehrend mir das Prinzip mittels css halbwegs klar ist, wuerde ich gerne wissen, wie man den Arbeitsaufwand mit css moeglichst gering haelt:

Angenommen, ich moechte so etwas wie ein Inhaltsverzeichnis am Rand der Seite darstellen, der links in einem Hauptfenster geoeffnet werden sollen.

Wenn ich css richtig verstanden habe, muss jede html-Seite dann den Inhalt fuer das Inhaltsverzeichnis enthalten, d.h., wenn ich dort etwas aendern moechte, muss ich das in jeder Datei. Mit frames habe ich dieses Problem nun nicht. Gibt es fuer css eine aehnlich elegante Loesung, z.B. so etwas wie ein 'include' (Mit php ginge das wohl, ich moechte mich aber rein auf html beschraenken)?
 

supersucker

Foren Gott
Beiträge
3.873
soweit ich weiss (man möge mich korrigieren wenn ich da falsch liege), ist es weder mit html noch mit css möglich dateien zu laden. ausser halt mit frames.

hat mich auch schon mal genervt.
 

mo22

Jungspund
Beiträge
15
hallo,

streng genommen ist CSS für das Layout und HTML für die Struktur zuständig. Du könntest halt den Kopf, Fuss, Navigation und Inhalt in seperate dateien aufteilen und mittels php includen. So brauchst du es nicht auf jeder Seite ändern. In CSS ist mir soetwas nicht bekannt.

Gruss
mo22
 

pinky

König
Beiträge
795
alternativ zu PHP kannst du server-side-includes (SSI) verwenden. Ist wohl das einfachste, wenn man kein PHP kann und der server SSI unterstützt.
 

chrisnolde

Mitglied
Beiträge
30
er kanns auch mit htmal css und javascript machen.

wird dann so ein vergewaltigtes AJAX.

mit css die zwei bereiche definieren ( menü und inhalt ) und je nach gedrücktem link im menü dann per javascript den entsprechenden inhalt laden und einblenden.
 

hehejo

blöder Purist
Beiträge
1.280
Naja, momentarn würde man dafür halt php nehmen.
Ich mache es immer so, dass ich mir über php dynamisch den übergebenen Content in meine Seite einbaue.
D.h. ich hab nur einmal Navigation und so.
 

Wolfgang

Foren Gott
Beiträge
3.978
Hallo
hehejo schrieb:
Naja, momentarn würde man dafür halt php nehmen.

:D
Wenn ich eine Scriptsprache dafür verwenden würde, dann sicher eher perl.
Ist erstens schneller, effizienter und hat trotzdem geniale Module mit Templates zu arbeiten.
Ich weiß, dass PHP eine Modescriptsprache geworden ist, aber deshalb ist sie zwar leichter erlernbar (sagt man), bleibt in vielen Bereichen aber weit hinter perl zurück.

Wenn ich allerdings nur eine zetrale Navigation für ein kleines Projekt erstellen muss, dann greife ich auch Heute noch auf Frames zurück. Iframes vermeide ich allerdings um jeden Preis.
Das allgegenwärtige Thema der Barrierefreiheit macht IMHO nur dort Sinn, wo der Inhalt auch der Clientel entsprechend ist.
Es macht z.B. keinen Sinn, irgendwelche Movies barrierefrei zu präsentieren.

Zu PHP möchte ich anmerken, dass man sich mal überlegen sollte, für jede Präsentation gleich diesen Speicherfresser zu bemühen.
Das Ist manchmal so, wie mit einem Presslufthammer auf eine 5 mm Gipswand loszugehen. ;)
CSS in Kombination mit SSI und Templates (z.B. Perlmodul), ist eine geniale Sache und relativ schlank/performant für den Webserver.
Wenn du unbedingt Wert auf browserunabhängige Darstellungstreue legen musst, ist css allerdings etwas heikel.

Am performantesten und Browser - unabhängigsten ist immernoch reines html.

Gruß Wolfgang
 

CMW

Hä ?!
Beiträge
517
CSS ist Rotz, Javascript hier nicht angebracht. Bastel die lieber ein Script, dass das Menü lokal in jede Seite integriert (Sollte sich in sh realisieren lassen, oder sonst wie), die Du dann hochlädst. Es ist irgendwo Unsinn eine kleine Private Seite bei der sich 1-2 mal die Woche der Inhalt ändert Serverseitige Skriptsprachen zu verwenden.
 

sono

Sack Flöhe Hüter
Beiträge
1.299
Sorry , aber :


CSS ist das mas der Dinge und die Zukunft. Seiten die mit HTML formatieren sind veraltet und gehörent entsorgt.
Wozu auch CSS , wer steht schon auf leichtere Wartung und Barierrefreiheit.

Javascript hier nicht angebracht.

Javascript wäre eine geeignete Lösung für das Problem, genauer gesagt das schon erwähnte AJAX könnte hier verwendet werden, auch wenn das bedeutet mit Kanonen auf Spazen zu schiesen, bzw hier Napalm zu grillen.
Aber Hauptsache gut durch.
require_once() in php wäre die einfachere Methode und hier wohl geeigneter.

Bastel die lieber ein Script, dass das Menü lokal in jede Seite integriert (Sollte sich in sh realisieren lassen, oder sonst wie), die Du dann hochlädst.

Du meinst das wäre weniger Aufwand als eine Menudatei per php oder Javascript in eine Seite zu includieren ?

Es ist irgendwo Unsinn eine kleine Private Seite bei der sich 1-2 mal die Woche der Inhalt ändert Serverseitige Skriptsprachen zu verwenden.

Aha, Arbeitserleichterung lohnt sich also erst ab einer bestimmten Größe?
Schubkarren also nur auf der Großbaustelle aber ja nicht bei der Gartenarbeit?

Ich weiß, dass PHP eine Modescriptsprache geworden ist, aber deshalb ist sie zwar leichter erlernbar (sagt man), bleibt in vielen Bereichen aber weit hinter perl zurück.

Durchaus möglich, aber bei kleinen Projekten mit wenig Usern dürfte der Unterchied kaum messbar sein. Der Vorteil bei PHP ist wohl , dass es auf fast jedem Server läuft. Webspace ( wenn man nicht gerade nen eigenen Server ) mit Perl ist zwar nicht selten, aber nicht ganz so häufig wie PHP.

Wobei die neuen PHP Versionen sich schon gebessert haben. Ich glaube zu bemerken, dass php5.1 etwas schneller läuft.

Nebenbei kommt das wie bei fast jeder Sprache auch stark auf das Know How des Programmierers an.

Gruß Sono
 

CMW

Hä ?!
Beiträge
517
sono schrieb:
Sorry , aber :



CSS ist das mas der Dinge und die Zukunft. Seiten die mit HTML formatieren sind veraltet und gehörent entsorgt.
Wozu auch CSS , wer steht schon auf leichtere Wartung und Barierrefreiheit.
Bei großen Projekten kann ich die Verwendung von CSS noch verstehen, bei kleineren aber nicht. Es gibt mMn keine bessere Barrierefreihet als bei einer in sauberem HTML geschriebenen Seite. Wenn man versucht "moderne" webseiten zB mit lynx zu betrachten stehen einem die Haare zu Berge (bei vBulletin Foren zB). Ich wüsste nicht wie CSS in dem Thema positiv wirkt, lasse mich aber gerne eines bessren belehren.
sono schrieb:
Javascript wäre eine geeignete Lösung für das Problem, genauer gesagt das schon erwähnte AJAX könnte hier verwendet werden, auch wenn das bedeutet mit Kanonen auf Spazen zu schiesen, bzw hier Napalm zu grillen.
Aber Hauptsache gut durch.
require_once() in php wäre die einfachere Methode und hier wohl geeigneter.
JavaScript ist in ca. 1% der Seiten in dnen es genutzt wird wirklich gerechtfertigt. Wenn die Seite ohne JavaScript nicht ganz so schön aussieht, aber dennoch funktioniert kann ich damite leben, wenn nicht ist dies in der Regel nicht gerechtfertigt. Wenn man z.B. JavaScript deaktiviert könnte man nahezu komplett auf "Popup-Blocker" verzichten, unverständlicher Weise funktionieren viele Seiten dann nicht mehr. (Beispiel kann ich gerne geben, wenn erwünscht), Und nur weil JavaScript in Sachen benutzt wird in denen es überflüssig ist (und dann stellenweisen noch bekloppt programmiert)
sono schrieb:
Du meinst das wäre weniger Aufwand als eine Menudatei per php oder Javascript in eine Seite zu includieren ?

Aha, Arbeitserleichterung lohnt sich also erst ab einer bestimmten Größe?
Schubkarren also nur auf der Großbaustelle aber ja nicht bei der Gartenarbeit?
Nein! Ich benutze aber keinen Bagger um eine 2 Meter große Fichte zu pflanzen!

"Aktiver Web-Speicherplatz" kostet numal mehr alse statischer (den bekommt man hinterher geschmissen). Wenn einer JavaScripte deaktiviert hat, funktioniert die gesamte Seite nicht. Die beiden Punkte sind für mich Grund genug auf Serverseitige sprachen zu verzichten, sondern das ganze auf dem Rechner auf dem sie Site erstellt wird per Script zu erledigen. Ob ich nun die Seite mit ienem Befehl zusammensetzte oder das ganze auf dem Server mache wäre mir egal wenn ich die Seite nicht allzu häufig ändern müsste.

Und noch eine persönliche Bitte: das Wort "includieren" bitte durch einfügen ersetzen. Danke! ;)
 
Zuletzt bearbeitet:

sono

Sack Flöhe Hüter
Beiträge
1.299
Im Endeffekt ist es bei einer kleineren Seite ziemlich egal.

Solange man keine Geld damit verdient , die Seite als Hobby betreibt, oder Menschen dafür bezahlen muss, dass die Seite läuft oder gewartet wird könnte man jede einzellne Seite von Hand in Notepad ohne Syntaxhighlighting schreiben.

Ist zwar unsinnig, aber im Grunde kein Problem.

Wenn man das ganze ein wenige Professioneller aufziehen will oder sich arbeit erleichtern möchte, dann spricht nichts gegen Technologien wie PHP und Javascript.

Bei großen Projekten kann ich die Verwendung von CSS noch verstehen, bei kleineren aber nicht. Es gibt mMn keine bessere Barrierefreihet als bei einer in sauberem HTML geschriebenen Seite. Wenn man versucht "moderne" webseiten zB mit lynx zu betrachten stehen einem die Haare zu Berge (bei vBulletin Foren zB). Ich wüsste nicht wie CSS in dem Thema positiv wirkt, lasse mich aber gerne eines bessren belehren.

Niemand sagt das die modernen Webseiten Barriere frei sind.
Wenn du dich näher mit Barrierefreiheit beschäftigt hättest wüsstest du allerdings dass man unter einer wirklich barrierfreien Webseite ein XML File mit CSS Formatierung verstehen würde, also Trennung von Daten und Design, was bei HTML überhaupt gar nicht der Fall ist. Sorry.

JavaScript ist in ca. 1% der Seiten in dnen es genutzt wird wirklich gerechtfertigt. Wenn die Seite ohne JavaScript nicht ganz so schön aussieht, aber dennoch funktioniert kann ich damite leben, wenn nicht ist dies in der Regel nicht gerechtfertigt. Wenn man z.B. JavaScript deaktiviert könnte man nahezu komplett auf "Popup-Blocker" verzichten, unverständlicher Weise funktionieren viele Seiten dann nicht mehr. (Beispiel kann ich gerne geben, wenn erwünscht), Und nur weil JavaScript in Sachen benutzt wird in denen es überflüssig ist (und dann stellenweisen noch bekloppt programmiert)

Das deaktivieren von Javascript, so effektiv es auch gegen Popups wirken mag schlies einen mittlerweile von einem großen Teil der Funktionen im Web aus.
Klar , wenn mans nicht braucht, es zwingt einen ja keiner dazu, aber da fast jede mittlere bis größere Seite mit Javascripten gespickt ist wird man ja sehen was man davon hat.
Wenn du dich mal mit Begriffen wie AJAX , Web2 oder Desktop like Web beschäftigst wirst du sehen warum Javascript deaktivieren keine gute Idee mehr ist, und eigentlich eine vorsintflutliche Einstellung in der Art "Never touch a running System" ist.

Während du nicht verstehts warum es immer mehr Seiten im Web gibt die ohne Javascript nicht mehr funktionieren, gibt es immer mehr Webdesigner und Programmierer die nicht verstehen warum es noch Leute gibt die Javascript deaktiviert haben.

Interaktive Seiten die sich bedienen lassen , wie gesagt AJAX usw kommen immer stärker in Mode und werden nach und nach die alte Seiten ersetzen.

Das ist sehr wahrscheinlich die Zukunft auch wenns vielen nicht passt.

Geh doch mal mit einem Pferdefuhrwerk auf die Autobahn. Da kommst du auch nicht weit. So ähnlich ist es auch im Web.

Nein! Ich benutze aber keinen Bagger um eine 2 Meter große Fichte zu pflanzen!

Du hättest aber mit einerm Bagger wesentlich einfacher als mit einem Suppenlöffel.

"Aktiver Web-Speicherplatz" kostet numal mehr alse statischer (den bekommt man hinterher geschmissen). Wenn einer JavaScripte deaktiviert hat, funktioniert die gesamte Seite nicht. Die beiden Punkte sind für mich Grund genug auf Serverseitige sprachen zu verzichten, sondern das ganze auf dem Rechner auf dem sie Site erstellt wird per Script zu erledigen. Ob ich nun die Seite mit ienem Befehl zusammensetzte oder das ganze auf dem Server mache wäre mir egal wenn ich die Seite nicht allzu häufig ändern müsste.

PHP Webspace mit MySQL Datenbank bekommt man ab 3 € wenn nicht sogar noch billiger, wer die Kohle nicht hat sollte es lassen.
Nebenbei haben viele kleinere Seiten ein Gästebuch oder ein Kontaktformular, oder vielleicht ne Shoutbox.
Alle noch so billigen Sachen gehen halt erst mit Software die das auch unterstützt.

Wenn man das will natürlich. Man muss es ja nicht wollen.

Und noch eine persönliche Bitte: das Wort "includieren" bitte durch einfügen ersetzen. Danke!

Sobald ich mit einer Programmiersprache arbeite in der das nicht include("file") sondern fügeein(""); heißt gerne.


Also mal zum Grundsätzlichen, ich will das hier jetzt ned raushängen lassen, aber ich bin schon ne Weile als Webentwickler in mittleren und größeren Prokjekten unterwegs, vor allem mit PHP und AJAX.

Aleine deshalb habe ich wohl einen ganz anderen Sichtwinkel auf das ganze als du.
Im großen und ganzen hast du eigentlich gar nicht unrecht. Für kleinere Projekte , so wie das worums hier eigentlich geht kann man deinen Weg genau so gehen wie dass was ich vorschlage.

Fakt ist aber, je mehr Zeit ins Land geht desto sinnvoller ist es auch Technologien zu verwenden, die aktuell und nebenbei auch für genau diesen Verwendungszweck entwickelt wurden.

In diesem Sinne Gruß Sono

Ps, nur bevor jetzt jemand kommt von wegen AJAX und Barrierefreiheit, ich weiß, dass es da Probleme geben kann beides unter einen Hut zu bekommen.

PS. PHP Basierte Lösung zum einfachen Ersatz von Frames. Leichter bekommt mans eigentlich kaum hin würde ich jetzt mal behaupten wollen.
PSS. Sorry war zu faul den counter auszubauen, ich böser.

Dürfte selbst mit minimalen php kentnissen zu verwenden sein.

Code:
<?php
session_name("session");
session_start();
header('content-type: text/html; charset=UTF-8');

function counter_upp(){
	$counter = file_get_contents("./counter.txt");
	$counter ++;
	file_put_contents("./counter.txt" , $counter);
}

function read_counter(){
	$counter = file_get_contents("./counter.txt");
	return $counter;
}

if (!isset($_SESSION['countertest'])){
	counter_upp();
	$_SESSION['countertest'] = TRUE;
}

if( isset($_GET['pageid'])){
	$pageid = $_GET['pageid'];
}else{
	$pageid = "start";
}



?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
			"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">

	<head>
	<title>Titel</title>
	<link href="./style/style.css" rel="stylesheet" type="text/css">
	</head>

<body >

<table>

<!-- TOP  -->
<tr><td colspan="2"><a name="oben"></a>
<?php require_once("./top.html"); ?>
</td></tr>
<!-- ENDE TOP  -->

<tr>

<!-- MENU  -->
<td valign="top">
<div>
<?php require_once("./menu.php") ?>
</div>
<div class="textklein">
Sie sind Besucher: <?php echo read_counter();  ?>
</div>
</td>
<!-- ENDE MENU  -->

<td id="maincontent" valign="top" width="700">
<?php

switch( $pageid ){

case 'start':{
	require_once("app/module/mod_main.php");
	break;
}

default:{
	require_once("app/module/mod_main.php");
	break;
}

} // ende switch

?>
</td>
</tr>

<tr><td valign="top" colspan="2" >
<?php require_once("./footer.php") ?>
</td></tr>
</table>


</body>
</html>
 
Zuletzt bearbeitet:

VuuRWerK

Bin fleißig dabei :)
Beiträge
47
Also Frames mit PHP ersetzen ist wirklich das beste! Und das CSS nicht für barriere freies Webdesign geeignet sein soll ist ja wohl daneben, oder? Die "Erfinder" von CSS haben genau deswegen CSS erfunden. <- Was ein Satz... :D

Aber mal zu SONO Das Script ist zwar sehr gut aber ich würde nicht require_once(); verwenden wenn man z.b. in einer footer.php auch noch Dateien oder sonstige Sachen included da sonst in den wiederum includeten Datein SuperGlobaleArrays nicht funktionieren, vorrausgesetzt ist aber wiegesagt das man es dort auch verwendet. Da benutze ich meist require(); oder gar doch include();

Gut Schuß
VuuRWerK ;)
 

oenone

Freier Programmierer[Mod]
Beiträge
599
rikola schrieb:
Wenn ich css richtig verstanden habe, muss jede html-Seite dann den Inhalt fuer das Inhaltsverzeichnis enthalten, d.h., wenn ich dort etwas aendern moechte, muss ich das in jeder Datei.

du kannst CSS in eine externe Datei stecken. Dann kannst du die Änderungen an der Navigation auch zentral verwalten.

auf bald
oenone
 

sono

Sack Flöhe Hüter
Beiträge
1.299
Aber mal zu SONO Das Script ist zwar sehr gut

Hört man gerne.

aber ich würde nicht require_once(); verwenden wenn man z.b. in einer footer.php auch noch Dateien oder sonstige Sachen included da sonst in den wiederum includeten Datein SuperGlobaleArrays nicht funktionieren, vorrausgesetzt ist aber wiegesagt das man es dort auch verwendet. Da benutze ich meist require(); oder gar doch include();

Das ist allerdings falsch. Ich kann dir garantieren dass die Includeten Dateien bei require_once auf die SuperGlobaleArrays zugreifen können.

Keine Ahnung wo du das her hast, aber am Ende heißt require_once nur : Binde diese Datei an genau dieser Stelle ein, aber bitte nur dann wenn du sie noch nicht an einer andere Stelle eingebunden hast.

Das ist beim Einbinden von PHP Funktionsdateien ganz nützlich.

Wenn man nur HTML einbindet dann ist vielleicht require oder include besser da man so Dateien auch öfterst einbinden kann was in dem Fall ja Sinn machen könnte.

Ps. Unterschied von Include und require kannst du hier nachlesen: http://www.php.net/include/

Gruß Sono
 
Zuletzt bearbeitet:

Ähnliche Themen

css/html: inhalt zu lang und kein scrollbar

Oben