Navileiste, Codeteile "auslagern"
-
um doofe Frames zu verhindern hatte ich auf meiner Webpage nun eine wunderbare navleiste unter Verwendung von CSS gebastelt.
Da ich aber auf dem Gebiet HTML nicht so bewandert bin, habe ich das recht umständlich realisiert, der Code für die navi sieht so aus:<div class="navi"> <a href="start.htm">Startseite</a> <a href="s2.htm">Seite2</a> <a href="s3.htm">Seite3</a> <a href="s4.htm">Seite4</a> </div>
das steht jetzt auf jeder der Seiten, wenn ich irgendwas ändern will, muss ich das auf jeder Seite tun. Irgendwie kann das ja nicht der Sinn der Sache sein, vermute ich mal, dass es da irgendeine Möglichkeit gibt, diesen Teil "Auszulagern", z.b. wie bei ausgelagerten Entities in XML. Was mache ich also am Besten?
-
Hast du vielleicht das Problem? Habe ich jetzt naemlich nicht so ganz rausgehoert...
MfG Aoeke
-
ja, ähnlich. Aber es muss doch einen simpleren Weg geben.
So dass ich zum Beispiel den von mir oben beschriebenen DIV- Container in eine andere Datei schreibe und jedesmal wenn ich diesen Codeschnipsel auf meiner Seite sehen will auf diese ausgelagerten Codeschnipsel referenziere und es für den HTML Prozessor dann keinen Unterschied mehr macht, ob da nun eine Referenz oder "echter" Code steht.so läuft das ja auch bei Geschichten wie
ö
, der HTML Prozessor liest das, und schreibt statt dessen den Ersatztext "ö", weil dies irgendwann mal jemand referenziert hat.
In XML nennt man sowas ausgelagerte Entitäten, man kann Markupcode, der öfter Auftaucht so in seinem Dokument referenzieren und spart sich Tipparbeit, oder wie in meinem Fall- man muss nicht an 1000 Stellen ändern, sondern nur an einer.
Ich hatte noch nicht die Gelegenheit, dies mit der normalen XML Syntax in meinem HTML Dokument auszuprobieren (in XML bin ich deutlich fitter), mönnte aber funktionieren.
SSI ist ansonsten der nächste Tip, und ich Danke Dir auch. Wenn Dich das mit den XML ENtities interessiert, kannste ja mal dort: http://userpage.fu-berlin.de/~ram/pub/pub_isews26/xml_allgemeinentitaetsreferenzen_deweiterlesen.
-
PHP (o.ä.), SSI oder Offline-Templates fallen mir da so spontan ein
-
hallo
auf www.tutorial.de
gibt es ein tut unter der rubrik php
da wird das menu in einer php datei gespeichert,
und dann überall eingebunden wenn du es aber offline ausprobieren willst brauchst du einen webserver.
mfg
-
Hallo.
Baue die Stylesheets in eine externe Datei, z.B. "design.css" und gib in jeder HTML-Datei folgenden Code ein:
<link rel="stylesheet" type="text/css" href="design.css" />
Oder diesen Codepackst du ebenfalls in eine externe Datei, z.B. "header.txt" und dann baust du in jeder Datei das hier ein:
<?php include("header.php"); ?>
Also mit Templates arbeiten, damit du so schnell wie möglich Änderungen vornehmen kannst. Das Gleiche machst du mit deiner Navigationsseite, nenn sie z.B. "navi.htm" und binde sie ebenfalls per php mit include() ein. Beachte, dass der gesamte Code übernommen wird, also du benötigst keine <html>-tags und keine <body>-tags wenn du die Linkseite z.B. in einer Tabelle einfügst.
-
Danke für die vielen Antworten, werde das alles heute Abend mal testen!
-
Stylesheets sind eh ausgelagert, darum geht's nicht. PHP kann ich leider nicht und die angegebene Tutorial Seite ist leider nicht erreichbar.
Daher das Problem nochmal allgemeiner:
Ich will einfach eine Gruppe HTML Befehle als externe Ressource "auslagern". Wenn ich jetzt eine andere HTML Seite habe möchte ich auf einem möglichst einfachen Wege diese ausgelagerten Befehle so aufrufen, dass sie vom HTML Prozessor so verarbeitet werden, als würden sie im Code der Seite von der aus sie aufgerufen werden stehen.
Wenn ich diese Befehle jetzt in eine Datei Packe (nenen wir sie Beispiel.txt) und dann HTML Code folgender Art habe:
<p>Bla Bla Bla</p> <?php include("Beispiel.txt"); ?> <img src="bild.png">
Wird dann an die Stelle, wo die php include steht auf der Seite der gewünschte Code eingefügt? Wenn ja wäre das schon die Lösung!
-
Ja, wenn du PHP-Unterstützung hast kannst du das so machen - oder eben per SSI
-
Physikalischer Fehler schrieb:
<?php include("Beispiel.txt"); ?>
Hi,
wichtig ist nur, dass deine Datei dann nicht .htm (.html) heißt sondern .php! Sonst fasst der PHP Paser das nicht an....MfG
Alexander Sulfrian
-
Wie schon ein paar mal erwähnt geht es auch mit SSI, muss aber dein Server unterstützung und dafür konfiguriert sein. Meistens werden SSI Befehle interpretiert wenn man die files *.shtml nennt.
<!--#include virtual="menü.htm" -->
mfg
tobi
-
Danke für Eure Hilfe, funktioniert jetzt alles hervorragend!