iFrames, Div Container oder andere Lösung???

Kaischo

Becks Apfel (Emstaler Champagner)
Registriert
06.01.07
Beiträge
338
Hallo zusammen,

Ich möchte eine Homepage basteln und komme sagen wir mal zurecht. Ich habe nun bevor ich anfange aber ein generelles Problem.Am besten werft ihr kurz einen blick auf mein Grundlayout.




Also die Seite wird in einem Kasten sein der sagen wir mal 800x500 Pixel ist oder so. Das Grüne ist dann ein Menu. Manche Menupunkte werden ein Dropdown haben und unterpunkte, andere nicht.
Der Braune Teil ist eben der Inhalt, und darum geht es bei meiner Frage.

Das man iFrames nicht benutzt heutzutage ist klar, so werde ich das nicht lösen. Mit einem Div-Container hätte ich das nun bisher gelöst. In den hätte ich dann HTML-Seiten reingeladen. Gefällt mir aber daher nicht dass man dann keine Permalinks auf einzelne Teile der Seite hat. Wisst ihr wie ich meine ? Wenn ich jemandem zB meine Fotoseite per Link schicken will dann geht das so nicht. Ich müsste ihm die Grund-URL sagen und dann wo er klicken muss.

Wie löst man dieses Problem denn schick, so dass ich Permalinks habe? Wie würdet ihr das am besten Lösen ? Was gibt es denn für sowas noch außer iFrames und Div-Container? Ganz viele Grüße

Kaisch0
 

torben1

Weisser Rosenapfel
Registriert
05.08.08
Beiträge
795
Hallo,

ein DIV ist eine Element in Htlm. Damit kannst Du Boxen auf einer Seite Positionieren. Das hat nichts mit reinladen oder so zu tun.

Am einfachsten ist es wenn Du folgendes machst:


Code:
<div id="navigation">
<!--// hier die Navigation rein //-->
</div>
<div id="content">
<!--// hier den Inhalt rein //-->
</div>
Das ganze dann per CSS formatieren.

Torben
 

Kaischo

Becks Apfel (Emstaler Champagner)
Registriert
06.01.07
Beiträge
338
Das beantwortet entweder meine Frage nicht oder ich stehe auf der Leitung. Was du mir vorschlägst bringt ja nur einen weiteren Container mit Inhalt. Ich habe oben die Links wie auf dem Layout zu sehen ist und diese sollen verschiedene Inhalte in den "Inhalt-DivContainer" schicken. Verstehst du? Aber mit der DIV Lösung habe ich ja dann keine Permalinks....noch jemand ne Idee ?
 

C64

Kaiser Alexander
Registriert
12.04.06
Beiträge
3.957
Das beantwortet entweder meine Frage nicht oder ich stehe auf der Leitung. Was du mir vorschlägst bringt ja nur einen weiteren Container mit Inhalt. Ich habe oben die Links wie auf dem Layout zu sehen ist und diese sollen verschiedene Inhalte in den "Inhalt-DivContainer" schicken. Verstehst du? Aber mit der DIV Lösung habe ich ja dann keine Permalinks....noch jemand ne Idee ?

Es beantwortet deine Frage voll und ganz;)
Du wirst für jeden Menüpunkt eine andere "Unter-URL" haben (zb. apfeltalk.de/forum/...)
Diesen kannst du dann schicken.
Es ist also nicht wie bei Frames, dass dein Menü einmal geladen wird und dann nur der Inhalt im content-div ausgetauscht wird. Jede Seite inkl. Menü ist eine eigene .html-Seite.
 

Kaischo

Becks Apfel (Emstaler Champagner)
Registriert
06.01.07
Beiträge
338
Achso ich soll also das gesamte Layout samt Menu auf jede Seite packen ? Oke verstehe ich, aber dann finde ich es etwas krass das jedes Mal das gesamte Layout und vor allem das Menu neu geladen werden. Wie kann ich das lösen dass nur der Inhalt in dem einen Container geladen wird ? Ist das möglich ? Ich denke da an PHP aber das kann ich nur gering... :/
 

torben1

Weisser Rosenapfel
Registriert
05.08.08
Beiträge
795
Wenn Du PHP gering beherscht.... dann mache für das Menu eine eigene Datei und inkludiere es mittels PHP. So bleibt Dein Aufwand gering.

Torben
 

Kaischo

Becks Apfel (Emstaler Champagner)
Registriert
06.01.07
Beiträge
338
Das klingt gut. Mir fällt dazu noch ein:

Am sinnvollsten wäre es doch wenn nur das lädt was auch neu ist jedesmal oder ? So wie beim iFrame vom Prinzip. Es lädt nur das was im iFrame neu kommt eben. Die Restliche Seite bleibt ja gleich. Das möchte ich eigentlich erreichen, dass ist sehr Nutzerfreundlich denke ich, wenn immer nur das neue lädt.

Wenn ich nun mit PHP ein Include- Feld (?) bzw. Container (?) mache und da dann immer Inhalte reinlade, geht das ? habe ich dann auch permalinks ? Oder wäre das zu krass ? Ich habe mit PHP nur soweit zu tun gehabt dass ich ein WordPress-Theme mal selbst gemacht habe, war aber hauptsächlich copy und paste arbeit. :/

Und du meinst jetzt dass ich im Prinzip nur das Menu Include und das lädt dann nicht immer neu oder wie? Sorry dass ich so viel fragen muss :/

Vielen Dank schonmal!!!

Kaisch0
 

torben1

Weisser Rosenapfel
Registriert
05.08.08
Beiträge
795
Also,

Du hast mehrere Möglichkeiten. Du kannst für jede Seite einen eigenen HTML-File erstellen und um dir Arbeit zu ersparen, Dinge die immer gleich sind (Header, Footer, Navigation) in extra Dateien auslagern und dann inkludieren. Dann hättest Du:
Code:
seite1.php 
seite2.php
seite2.php
und noch
Code:
navigation.php

dann könntest Du in Deinen HTML/PHP Code folgendes schreiben:
Code:
<?php include ("navigation.php");?>
<div id="content">Inhalt von Seite 1</div>
Du kannst das ganze natürlich auch umgekehrt machen und den Inhalt inkludieren und Mittels
Code:
 www.hallo.deindex.php?inhalt=1
erfragen welchen Inhalt der Nutzer möchte.

Die dritte Möglichkeit wäre das ganze durch AJAX zu realisieren. Aber ich denke das wäre jetzt zu viel des Guten für Dich.

Torben
 

gKar

Maunzenapfel
Registriert
25.06.08
Beiträge
5.362
Achso ich soll also das gesamte Layout samt Menu auf jede Seite packen ?

So ist es üblich, wenn man kein Ajax und keine (i)Frames verwendet.

Ich persönlich nutze übrigens XSLT, damit baue ich das Layout nur einmal, für jeden Inhalt gibt's eine eigene XML-Datei, die nur den Inhalt spezifiziert, daraus werden dann HTML-Dateien generiert, die den Inhalt aufbereiten und um die immer gleichen Teile wie Menü, Brotkrümelpfad, Fußzeile etc. erweitern.

Im Übrigen halte ich auch nicht viel von Seiten, die eine Box fixer Größe darstellen. Eine gute Seite passt sich im Normalfall der Fenstergröße an (zumindest ab einer gewissen Fenster-Mindestgröße) und bildet keinen riesigen freien Rahmen rund um den Inhalt, wenn man das Fenster größer aufzieht.
(OK, bei gewissem Content mag es sinnvolle Ausnahmen geben)
 

Kaischo

Becks Apfel (Emstaler Champagner)
Registriert
06.01.07
Beiträge
338
In Ordnung, vielen Dank! Ich verstehe das soweit. Nun versteht ihr was ich meine, dass ich nicht will das jedesmal die Sachen die gleich sind neu geladen werden? Macht man das echt so, dann ist das surfen doch zumindest theoretisch langsamer für den User weil er immer alles neu laden muss ???

Oder wäre das mit dem PHP dann nicht mehr so?
Das wäre noch das letzte, ich muss also entscheiden ob ich nun den Inhalt oder den ganzen Rest include. Helft mir bei der entscheidung ^^:D

AH UND noch eine Frage: Wenn ich also nur den Inhalt immer Includen will, wie muss ich dann die Links im menu machen dass sie es immer in den richtigen Container laden und ich trotzdem die Permalinks habe ?? Das habe ich noch nicht ganz verstanden. (Torben du meinstest einfach "umgekehrt", da fehlt mir noch was...)
 

gKar

Maunzenapfel
Registriert
25.06.08
Beiträge
5.362
Wenn ein Teil der Seite stehen bleiben und nur Inhalte ausgetauscht werden sollen, brauchst Du entweder einen Frame (bzw. iFrame) oder Du forderst Änderungen per Ajax an, so dass also per JavaScript die Seite nachtäglich verändert wird. Im einfachsten Fall könnte z.B. der Inhalt eines DIV-Containers per JavaScript gelöscht und komplett durch neu nachgeladenen HTML-Code ersetzt werden.
Dass damit die Seiten etwas schneller und flexibler werden, ist ja einer der Gründe für die Ajax-Verbreitung. Aber für einfache Webseiten halte ich das für etwas überdimensioniert. Ist zwar eigentlich sehr einfach machbar, geht aber halt nur bei im Browser aktiviertem JavaScript. Und guck Dir doch mal z.B. diese Forenseiten an: Ist das Dir auch zu ineffizient / langsam?
 

Kaischo

Becks Apfel (Emstaler Champagner)
Registriert
06.01.07
Beiträge
338
Ja das mit dem Ajax ist ca. meine Vorstellung, bis auf die Tatsache dass man dann keine Permalinks hat, oder ?

Jo und nun was soll ich eurer Meinung nach machen ?

Die Inhalte die sich ändern per PHP includen. -ODER

Das Menu und das Layout in eigene Dateien und dann bei jeder Seite immer includen ??

Wie herum ist es besser?
 

gKar

Maunzenapfel
Registriert
25.06.08
Beiträge
5.362
Ja das mit dem Ajax ist ca. meine Vorstellung, bis auf die Tatsache dass man dann keine Permalinks hat, oder ?
Nö, die hat man dann natürlich nicht. Das war schon auch bei Framesets immer ein Problem (man musste dann eine Kopie des Framesets dafür anlegen).

Jo und nun was soll ich eurer Meinung nach machen ?

Wie gesagt: Einfach die gleichbleibenden Teile in jeder Seite includen (ich mache das, wie gesagt, per XSLT-Transformation, es gibt aber viele Alternativen).
 

torben1

Weisser Rosenapfel
Registriert
05.08.08
Beiträge
795
Wenn ich Dir einen Tipp geben darf:

Wenn Du ein schönes, gutes und schnelles Ergebnis willst: benutze iWeb oder einen anderen WYSIWYG-Editor.
Ansonsten muss Du Dich bei Deinen Vorgaben schon tiefer mit der Materie beschäftigen. AJAX [PHP, JavaScript] ist nichts für nebenbei. Wenn Du dich aber "richtig" mit der Materie beschäftigen möchtest versuche erst einmal Seiten in HTML zu erstellen. So richtig von Hand, ohne Frames, PHP oder AJAX. Für jede Seite auch ein Dokument.

Torben
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
In Ordnung, vielen Dank! Ich verstehe das soweit. Nun versteht ihr was ich meine, dass ich nicht will das jedesmal die Sachen die gleich sind neu geladen werden? Macht man das echt so, dann ist das surfen doch zumindest theoretisch langsamer für den User weil er immer alles neu laden muss ???
Ist eigentlich Gang und Gäbe, dass immer die komplette HTML-Seite neu geladen wird (AJAX mal ausgenommen). Hier bei Apfeltalk ist es ja auch so.
 

floonparty

Kaiser Wilhelm
Registriert
13.09.07
Beiträge
174
Ist eigentlich Gang und Gäbe, dass immer die komplette HTML-Seite neu geladen wird (AJAX mal ausgenommen). Hier bei Apfeltalk ist es ja auch so.

Das Stimmt, die meisten Seiten werden ja auch erst erstellt, wenn sie geladen werden,.. aus SQL Tabellen und so ein Zeug!
 

Kaischo

Becks Apfel (Emstaler Champagner)
Registriert
06.01.07
Beiträge
338
Hallo zusammen, ich habe nochmal ein Problem.

Ich habe nun ein Tab-Menu mir irgendwo gesucht und das dann auf allen Seiten "included".
Nun möchte ich aber dass auf den jeweiligen Seiten immer der Menupunkt bei dem man sich befindet kenntlich markiert ist. Mein Menu ist/soll nur einfacher Text sein, also kein aufwändiger Stuff. Wie mache ich das am besten ?
 

torben1

Weisser Rosenapfel
Registriert
05.08.08
Beiträge
795
Also ich versuche das nochmal darzustellen.

Normalerweise wird für jede Webseite ein eigenes Dokument benutzt und dann auch zum User gesendet. Ist aber nicht so schlimm wie sich das ganze anhört, weil: Browser können Bilder, Flash usw. im Speicher behalten. Nun gibt es Techniken (Frames, AJAX usw.) die in einem Dokument mehrere Anfragen eines Nutzers erlauben. Frames sind eine alte, aus heutiger sich nicht mehr zu benutzende Technik. Alle anderen Techniken erfordern tieferes Wissen (Ajax z.B. JavaScript und PHP).
Damit Du nicht immer alle Seiten von neuem komplett schreiben musst (gerade bei kleinen Änderungen sehr ärgerlich) kannst Du z.B.
Code:
include
benutzen.
Für den User macht das aber keinen Unterschied.

Hoffe das bring Klarheit

Torben
 

Kaischo

Becks Apfel (Emstaler Champagner)
Registriert
06.01.07
Beiträge
338
Hallo :D Ja das habe ich inzwischen verstanden!!!

Ich habe mein Menu auch included und alle möglichen anderen Teile auch!

Aber wenn ich ein Menu möchte bei dem der Menupunkt bei dem man sich gerade befindet kenntlich gemacht wird, weiß ich nicht wie das gehen soll. Denn mit "include" wird das Menu ja dann auch neue geladen und es kann kein Link wissen das er davor geklickt wurde sozusagen - oder ?

Verstehst du/ihr nicht was ich meine ^^?
 

torben1

Weisser Rosenapfel
Registriert
05.08.08
Beiträge
795
Ahhhh...
Du kannst mit PHP eine Abfrage erstellen, wo befindet sich der User . Damit kannst Du dann auch ein highlight erstellen. Das erfordert aber schon ein par Grundkenntnisse im Umgang mit PHP.

Torben