Christoph Pilatzek: Layout in externer Datei

Hallo zusammen,

ich habe folgendes Problem:

Ich erstelle gerade eine HTML-Seite mit  einem externen Stylesheet und OHNE FRAMES, da diese Seite "Barrierefrei" werden soll.
Das Layout (Formatierungen und Aufteilung) habe ich schon in das Stylesheet gepackt und möchte nun aber auch weiteren HTML-Code "auslagern", da z.B. die Hyperlinks in der Navigationsleiste immer dieselben sind.
Bisher mußte ich die Hyperlinks in jede Datei reinkopieren, was sehr umständlich ist und nicht sehr wartungsfreundlich.
Kann den HTML-Code irgendwie zentral in EINE Datei packen?

Es wäre super, falls jemand von euch eine Lösung dafür hat. Es kann auch mit Javascript oder anderes gemacht sein!
Vielen Dank schon mal im voraus!

Beste Grüße
Christoph Pilatzek

  1. Hallo,

    Entweder du nutzt eine Art CMS (Content Managment System) mit Templates, oder du nutzt include Funktionen einer Serverseitigen Programmiersprache oder include Funktionen deines Texteditors den du nutzt.

    Mit HTML Alleine geht das nicht, mit JavaScript (oder Neuspeech Ajax) geht das schon, ist aber ziemlich aufwendig für Anfänger und funktioniert natürlich nicht in älteren Browsern oder mit abgeschaltetem JavaScript und hat noch andere grobe Nachteile.

    Grüße
    Jeena Paradies

  2. Hallo Christoph,

    Ich erstelle gerade eine HTML-Seite mit  einem externen Stylesheet und OHNE FRAMES, da diese Seite "Barrierefrei" werden soll.

    sehr löblich. :-)

    Das Layout (Formatierungen und Aufteilung) habe ich schon in das Stylesheet gepackt und möchte nun aber auch weiteren HTML-Code "auslagern", da z.B. die Hyperlinks in der Navigationsleiste immer dieselben sind.
    Bisher mußte ich die Hyperlinks in jede Datei reinkopieren, was sehr umständlich ist und nicht sehr wartungsfreundlich.
    Kann den HTML-Code irgendwie zentral in EINE Datei packen?

    Willkommen bei den Standardfragen. Diese hier taucht bestimmt ein- bis zweimal in der Woche hier auf.
    Also: HTML stellt selbst keinen Mechanismus zur Verfügung, um Teile eines Dokuments aus anderen Quellen zu "includen". Folglich musst du auf andere Methoden zurückgreifen. Welche für dich in Frage kommt, hängt von deinen Kenntnissen ab und davon, was dein Webhoster anbietet.

    Völlig unabhängig von deinem Provider kannst du einen Editor verwenden, der solche Includes unterstützt, so dass dein Editor die Dateien schon fertig zusammenbastelt, bevor du sie auf den Server hochlädst.

    Ansonsten musst du diese Aufgabe dem Server überlassen; hier bieten sich SSI (Server Side Includes) an. Alternativ kannst du sowas auch mit PHP oder einer anderen serverseitigen Scriptsprache realisieren, aber nur wegen ein paar Includes PHP zu verwenden, wäre mit Kanonen auf Spatzen geschossen.

    Es wäre super, falls jemand von euch eine Lösung dafür hat. Es kann auch mit Javascript oder anderes gemacht sein!

    Nein, bitte nicht mit Javascript! Auf gar keinen Fall! Dann hast du das Thema Barrierefreiheit mit einem Blattschuss erlegt.
    Damit ließe sich so etwas zwar leicht konstruieren (eine externe JS-Ressource, die die HTML-Blöcke mit document.write() in den Quelltext schreibt). Aber dann lässt du alle diejenigen, die mit deaktiviertem Javascript surfen, im Regen stehen. Das ist fast sowas wie eine Todsünde im Webdesign.

    Schönen Abend noch,
     Martin

    --
    Wenn man keine Ahnung hat - einfach mal Fresse halten.
      (Dieter Nuhr, deutscher Kabarettist)
    1. Hallo Martin,

      aber nur wegen ein paar Includes PHP zu verwenden, wäre mit Kanonen auf Spatzen geschossen.

      Unsere Ratschlaege aehneln sich ja ziemlich und ich war auch versucht, eine aehnliche Bemerkung zu machen. Allerdings habe ich dann gedacht, dass so eine verhaeltnismaessig einfache Aufgabe vielleicht auch Lust auf mehr macht und das kann so verkehrt ja nicht sein.

      Gruß,

      Dieter

    2. Hallo Martin.

      Also: HTML stellt selbst keinen Mechanismus zur Verfügung, um Teile eines Dokuments aus anderen Quellen zu "includen".

      Das stimmt so nicht ganz.

      Einen schönen Sonntag noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      mathbr:del.icio.us/ mathbr:w00t/
  3. Hallo Christoph,

    und möchte nun aber auch weiteren HTML-Code "auslagern", da z.B. die Hyperlinks in der Navigationsleiste immer dieselben sind.

    Du darfst HTML und CSS nicht durcheinanderwerfen, zwar kannst und solltest du CSS auslagern, aber um Teile des HTML-Codes in einer seperaten Datei unterzubringen, bedarf es einer serverseitigen Technik. SSI waere wohl die einfachste Loesung, dein Server muss das aber auch unterstuetzen. Darueberhinaus kommen alle (Server-)Programmiersprachen infrage, auch hier passende Unterstuetzung vorausgesetzt. PHP ist davon wahrscheinlich die populaerste. Die Grundlagen sind recht einfach zu erlernen und es gibt massenweise Tutorials. Allerdings verleitet sie auch zur saloppen Programmierung und vieles was im Web als ultimative Weisheit angeboten wird ist schlicht grottig.

    Alternativ dazu gibt es Editoren die Includes auf aehnliche Art wie SSI unterstuetzen, aber letztlich schreiben sie doch den kompletten Code in die fertige HTML-Seite.

    Persoenlich wuerde ich Dir raten, erstmal SSI auszuprobieren. Es kann nicht sonderlich viel und du wirst wohl sehr schnell an die Grenzen stossen, aber vielleicht fordert dich die Erfahrung ja heraus, dich mit einer anderen Sprache zu beschaeftigen.

    Gruß,

    Dieter

  4. Vielen Dank für die Antworten, das war sehr aufschlußreich!