Zur Navigation

xhtml 1.0 strict valide - Wie öffne ich einen Link im "content" div container?

Ich stehe am Kabel, bitte hebt mich kurz mal hoch!

1 sudex

Hallo liebe Forum-Mitglieder und hallo Jörg.

Ich habe ein denkbar kleines Problem an dem ich mir die Zähne ausbeiße.
Etliche Tage googeln, selfhtml.org etc. brachten mich keinen Milimeter weiter, dafür fand ich Jörgs Forum und ich habe den Eindruck dass hier kopmetent geantwortet wird.

Ich bin html-Anfänger und habe es mir auferlegt meine Seite einfach aber XHTML-Strict valide zu gestalten und ohne Webseiten-Editoren auszukommen um einen hohen Lerneffekt zu erzielen.

Die Hompepage soll, wie Jörgs Forum auf der linken Seite das Menü erhalten sowie Header und Footer über die ganze Seitenbreite und dazwischen, rechts neben der Menü den Inhalt.

Nun soll das Projekt insgesamt sehr umfassend werden und ich habe mir hierzu folgendes überlegt:

\indexfaq.xhtml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
  <title>index</title>
    <link
	rel="stylesheet"
	type="text/css,charset=UTF-8"
	media="screen,projection"
	title="SuDeX"
	href="indexfaq.css"
    />
</head>
<body>

<!-- LOGO -->
    <div id="logo">
	<object data="logofaq.xhtml" type="text/html"></object>
    </div>

<!-- TITEL -->
    <div class="title">
	<object data="titlefaq.xhtml" type="text/html"></object>
    </div>


<!-- MENU -->
    <div class="navi">
	<object data="navifaq.xhtml" type="text/html"></object>
    </div>

<!-- INHALT -->
    <div class="content">

		MAIN CONTENT

    </div>

<!-- SIGNATUR -->
    <div id="footer">
	<object data="footerfaq.xhtml" type="text/html"></object>
    </div>
</body>

\titlefaq.xhtml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
  <title>title</title>
    <link
	rel="stylesheet"
	type="text/css,charset=UTF-8"
	media="screen,projection"
	title="SuDeX"
	href="indexfaq.css"
    />
</head>
<body>
<!-- TITEL -->
    <div class="title">
	<h1><a href="indexfaq.xhtml">SuDeX's FAQ's</a></h1>
	<h2>faq.sudex.biz</h2>
    </div>
</body>
</html>

\navifaq.xhtml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
  <title>navi</title>
    <link
	rel="stylesheet"
	type="text/css,charset=UTF-8"
	media="screen,projection"
	title="SuDeX"
	href="indexfaq.css"
    />
</head>
<body>
<!-- NAVIGATION -->
    <div class="navi"> 
      <h2>Menu 1</h2>
        <ul>
	<li><a href="sites/1page1.xhtml">1.1</a></li> 
	</ul>
    </div>
</body>
</html>

\footerfaq.xhtml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
  <title>footer</title>
    <link
	rel="stylesheet"
	type="text/css,charset=UTF-8"
	media="screen,projection"
	title="SuDeX"
	href="indexfaq.css"
    />
</head>
<body>
  <div style="clear:both;"></div>
<!-- FOOTER -->
    <div id="footer">
	Copyright 2010 by <a href="indexfaq.xhtml">SuDeX</a>
      <address>
	Erstellt 02/2010, zuletzt 02/2010 aktualisiert.
      </address>
    </div>
</body>
</html>

\sites\1page1.xhtml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
  <title>navi</title>
    <link
	rel="stylesheet"
	type="text/css,charset=UTF-8"
	media="screen,projection"
	title="SuDeX"
	href="indexfaq.css"
    />
</head>
<body>

<!-- LOGO -->
    <div id="logo">
	<object data="logofaq.xhtml" type="text/html"></object>
    </div>

<!-- TITEL -->
    <div class="title">
	<object data="titlefaq.xhtml" type="text/html"></object>
    </div>


<!-- MENU -->
    <div class="navi">
	<object data="navifaq.xhtml" type="text/html"></object>
    </div>

<!-- INHALT -->
    <div class="content">

SUB 1.1

    </div>

<!-- SIGNATUR -->
    <div id="footer">
	<object data="footerfaq.xhtml" type="text/html"></object>
    </div>
</body>
</html>

Der Gedanke war, dass die Homepage index.xhtml sowie die Unterseiten *page*.xhtml alle dieselbe Struktur haben (lediglich verschiedene Pfadangaben) so dass ich z.B. eine Unterseite im Ordner \sites einfach kopiere, umbennen, den Inhalt ersetze und für die neue Datei in der navifaq.xhtml einen neuen Menüpunkt einfüge.

Nun endlich zu meinem Problem (in aller kürze):
Beim klick auf das Menü erscheint der Inhalt der Unterseite im Navigations-Container und nicht im Content Container.

Ich bin verzweifelt.

Gibt es eine Lösung ohne iframes, ohne DTD Änderung, ohne Javascript und ohne PHP?

Voller Erwartung hier die göttliche Antwort zu erhalten und mit bestem Dank im Voraus,

sudex, noob!

PS: CSS habe ich für mich und mein einfache Verständnis weggelassen.

edit: die logofaq.xhtml auch

27.02.2010 22:02 | geändert: 27.02.2010 22:03

2 Jörg Kruse

Wenn ich dich richtig verstanden habe, willst du über einen Link in einem object Element den Inhalt eines anderen object Elements ändern? also gewissermaßen object als einen Ersatz für Iframe einsetzen?

Gibt es eine Lösung ohne iframes, ohne DTD Änderung, ohne Javascript und ohne PHP?

Ich kenne keine solche Möglichkeit.

Wenn PHP möglich ist, würde ich die betreffenden Elemente includen, oder alternativ - falls möglich - mit SSI includen. Ansonsten gibt es auch Editoren, die vor dem Hochladen die Seiten passend zusammensetzen bzw. diese aktualisieren.

28.02.2010 00:06 | geändert: 28.02.2010 00:07

3 sudex

Vielen Dank Jörg, für die rasche Antwort.

Du hast das richtig verstanden.

Ich muss jetzt nocheinmal blöd fragen.
Gibt es einen Weg das Menü und/oder den den Inhalt nicht als object element einzubinden ohne bei Menüerweiterung in jeder Sub-Seite das Menü zu ergänzen?
Gibt es soetwas wie eine Variable die aus einer anderen Datei den code einlesen kann? So dass ich anstelle des Menüs in jeder Seite diese Variable setze die dann das Menü aus einer anderen Datei einliest. Und noch dazu für Anfänger? (Wieder ohne hilfe von java php und so, da hab ich nämlich null durchblick)

Bei meiner ersten kleinen Seite hatte ich kein Problem in den fünf Unterseiten das Menü bei bedarf anzupassen. Aber diesmal sollen es deutlich mehr Seiten werden.

Entschuldigung fall ich mich blöd stelle und dumm schreibe aber diese Thema beschäftigt mich schon so lange und macht mir graue Haare.

Ich rechne schon mit einem einfachen Nein und beginne die DTD auf transitional zu ändern, mit dem traget kann ich es hinbekommen wie ich es mir vorstelle. Ob die Seite dann am Mobiltelefon passt bleibt abzuwarten.

Danke, sudex.

28.02.2010 01:28

4 Jörg Kruse

Gibt es soetwas wie eine Variable die aus einer anderen Datei den code einlesen kann?

Das ist eine typische Funktionalität von Programmier- und Scriptsprachen. HTML ist aber eine Auszeichnungssprache und nicht dazu geschaffen, dynamisch Seiten aus einzelnen Dateien zu erstellen - wenn man von den veralteten Frames und Iframes absieht, die einige Nachteile mit sich bringen. Das object Element hat eigentlich den Zweck, Multi-Media-Elemente einzubinden. Dass du so wenig in Google darüber gefunden hast, wie man dort andere HTML-Dokumente integriert, liegt sicher auch daran, dass dies kein wirklich gangbarer Weg ist. Und so wie du die Dateien integrieren möchtest, handelst du dir auch die Nachteile ein, die du mit (I)Frames hättest (z.B. dass man Unterseiten nicht bookmarken oder aktualisieren kann, dass Suchmaschinen nur die EInzelteile indizieren, falls sie die so eingebundenen Inhalte überhaupt indizieren)

Du musst übrigens nicht großartig programmieren können, um PHP Includes zu verwenden. Es reicht, wenn du die Dateien mit der Endung .php abspeicherst - mit einem solchen Einzeiler kannst du dann eine andere PHP-Datei includen:

<?php include("footer.php") ?>

Und den XML-Prolog in der ersten Zeile muss man hierbei noch folgendermaßen abändern, damit PHP wegen des "<?" nicht drüber stolpert:

<?php echo '<?xml version="1.0" encoding="UTF-8" ?>' ?>

28.02.2010 11:19

5 Käptn Blaubär

Zitat von sudex
Gibt es soetwas wie eine Variable die aus einer anderen Datei den code einlesen kann? So dass ich anstelle des Menüs in jeder Seite diese Variable setze die dann das Menü aus einer anderen Datei einliest.


Hallo,

Wenn Du kein PHP einsetzen kannst oder willst:

im HTML-Editor Phase 5 (kostenlos für bestimmte Zwecke, hier runterzuladen: http://www.phase5.info/ ) gibt's sowas (heißt dort Includes).

01.03.2010 21:13

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]