Hans : HTML include

An die Spezialisten: Ich bin Baujahr 1943 (also schon etwas älter) und habe eine Webseite mit einem großen Menu erstellt. Ich will dieses Menu nicht in jeder HTML Seite ändern, sondern als include in jeder Seite einbauen. Das Menu liegt domain.at/D/menu.inc

<ul class="main-navigation">
<li><a href="#">Home</a></li>
<li><a href="#">Familienforschung</a>
<ul>
<li><a href="#">Raum Graz</a>
<ul>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
</ul>
<li><a href="#">Raum Fürstenfeld</a>
<ul>
<li><a href="https://www.selbach.at/! forscher/selbach.htm">Selbach</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
</ul>
</li>
<li><a href="#">Raum Mürzzuschlag</a>
<ul>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Allgemeines</a>
<ul>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a>
<ul>
<li><a href="#">3.1</a></li>
<li><a href="#">3.2</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="http://domain.at/xyz/">Datenbank</a></li>
<li><a href="#">Kont@kt</a></li>
</ul>

Im gleichen Verzeichnis D liegt z.B index.html kontakt.html usw. Wenn ich nun folgendes im Programm schreibe

<body>
<!--#include virtual="menu.inc" -->

erscheint das menu nicht

Hinter D liegt ein weiteres Verzeichnis domain.at/D/X In X liegt eine Datei name.html Wenn ich nun folgendes in name.html schreibe

<body>
<!--#include virtual="../menu.inc" -->

oder

<!--#include virtual="../../menu.inc" -->

erscheint das menu auch nicht

Wer kann mir helfen?

  1. Hallo Hans,

    unterstützt der Server, auf dem deine Seite liegt, Server Site Includes (SSI)? Bei uns müssen die Seiten mit SSI die Extension shtml haben.

    Wenn du mal im Browser einen Blick in den Quellcode wirfst, was steht da? Oder kannst du einen Link zu deiner Seite posten?

    Gruß
    Jürgen

  2. @@Hans

    Wo ich’s gerade sehe:

    <a href="#">Kont@kt</a>

    Was soll ein Screenreader damit anfangen? „Kont at ka te“?

    Wenn du diesen Schnickschnack schon machst (Warum eigentlich? Das ist so 1998.), dann sollte der Link für assistive Technologien eine Beschriftung „Kontakt“ haben:

    <a href="#" aria-label="Kontakt">Kont@kt</a>
    

    oder

    <a href="#">
    	<span aria-hidden="true">Kont@kt</span>
    	<span class="visually-hidden">Kontakt</span>
    </a>
    

    mit

    .visually-hidden
    {
    	position: absolute !important;
    	height: 1px;
    	width: 1px;
    	overflow: hidden;
    	clip: rect(1px, 1px, 1px, 1px);
    }
    

    im Stylesheet. ☞ How-to: Hide content

    LLAP 🖖

    Edit Rolf B: Tippfehler berichtigt.

    --
    „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
  3. Hello Hans,

    parellel zu deiner eigentlichen Frage möchte ich Dir einen Gedanken nahelegen:

    Angesichts meiner Erfahrungen bei Freifunk mit den Verzögerungen durch den DNS kann ich auf jeden Fall empfehlen, Kern-Webseiten grundsätzlich von ein und derselben DOMAIN laden zu lassen, so dass keine erneute Namensauflösung für Teile der Seite notwendig ist.

    Die Kernseite sollte dann auch schon fertige Container (bezüglich der Maße) für die von anderen Seiten nachzuladenden Teile im HTML enthalten, sodass beim Resize durch CSS keine Hampeleien auf der Seite mehr stattfinden.

    Im Prinzip kommt man auch heute noch nicht darum herum, im HTML bereits Maße anzugeben, die dann vom CSS tunlichst wieder einzuhalten sind. Im Zeitalter der (schlechten) Überall-Netzanbindung sind Seiten sonst relativ unbrauchbar.

    #@all:
    Dieses Thema wollte ich schon lange mal behandeln und würde mich daher über Eure Meinungen freuen.

    Glück Auf
    Tom vom Berg

    --
    Es gibt nichts Gutes, außer man tut es!
    Das Leben selbst ist der Sinn.