André: Bereiche in einer Website

Hallo Freunde!

Meine letzte Anfrage hat mir schon mal eine Menge neues Wissen verschafft.

Mein Problem konnte ich bis jetzt allerdings noch nicht lösen. Deshalb hier eine neue Frage.

Wie kann ich eine Website aufteilen, sodass ich verschiedene html-Bereiche darstellen kann - und das ohne Frames zu verwenden (aufgrund der inzwischen allseits bekannten Nachteile)???

Schließlich profitiert ja eine Website davon, dass ich irgendwo eine Navigationsleiste habe und bei entsprechendem Anklicken verändern ein bis zwei Bereiche der Seite ihren Inhalt.

Ist sowas mit "einfachem" html bzw. css hinzubekommen oder wird dafür php benötigt und ein bisschen javascript (wenn sich 2 Inhaltsbereiche ändern sollen)???

Danke und viele Grüße,

André  =)

  1. Hi!

    Mit CSS geht das sehr gut. Lege Dir eine css-Datei an, zB. format.css (klassischer Name).
    Dort legst Die die Bereiche fest, zB.

    #container {width: 680px; margin-right: auto; margin-left: auto; font-family: Arial, Helvetica, sans-serif; color: #7B917C; background-color:#ECF2E8;}
    #container #head {height:153px;border-right:solid 1px #7B917C; border-left:solid 1px #7B917C; border-top:solid 1px #7B917C;}
    #container #url {background-color:#F5F8F3; height:50px; border-right:solid 1px #7B917C; border-left:solid 1px #7B917C;}

    (ein Ausschnitt aus meiner aktuellen css)

    Dann schreibst Du im html:
    <body>
    <div id="container>
     <div id="head"> Hier ist Dein Logo oder sonstiger Kopfbereichstext</div>
     <div id=...>...</div>
    </div>
    </body>...

    1. Hi!

      Mit CSS geht das sehr gut.

      Und wie wird CSS der Anforderung des OP gerecht, die da lautet:

      und bei entsprechendem Anklicken verändern ein bis zwei Bereiche der Seite ihren Inhalt

      Du kannst beim Ausliefern des Dokumentes

      1.) Nicht ahnen, welche Inhalte der Nutzer sehen mag
      2.) Schon gar nicht _alle_ Inhalte ausliefern und per CSS zunächst 'unsichtbar' halten - das wäre die einzige Möglichkeit auf deren Unsinnigkeit ich OP in meiner Antwort hoffentlich verständlich aufmerksam machen konnte...

      off:PP

      --
      "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
  2. Ist sowas mit "einfachem" html bzw. css hinzubekommen oder wird dafür php benötigt und ein bisschen javascript (wenn sich 2 Inhaltsbereiche ändern sollen)???

    Damit bist du schon nah dran ^^

    Schau z.b. ginge es so:
    <html>
     <head>
      ...
     </head>
     <body>
      <?php include('header.html'); ?>
     </body>
    </html>

    So hättest du zumindest schonmal den header, oder die navi oder was auch immer in einer Seperaten Datei für alle Seiten definiert.

    Verlinkungen kannst du z.b. mit einfachen GET machen, also:
    domain.tld?site=home

    Und das mit PHP entsprechend verarbeiten.

    Mit mod_rewrite kannst du daraus dan z.b.
    domain.tld/home
    machen

    JavaScript wäre auch eine Möglichkeit, aber gleich 10 mal so kompliziert und reine Ajax webseiten sind nicht in allen fällen gern gesehn.

    Ich hoffe du verstehst was ich dir damit erklären will^^

    L.g. FreaQ

    1. Verlinkungen kannst du z.b. mit einfachen GET machen, also:
      domain.tld?site=home

      So mache ich es momentan auch:

        
        
      //-------Hier wird die Variable site nach ihrem Wert geprüft------  
        
      	if (array_key_exists("site", $_GET))  
      		$main = $_GET['site'];	  
        
        
      //--Hier entsprechend dem Wert die entsprechende PHP-Datei included----  
        
      if ((string)$main == "")  
                                             $main = "home";  
                                          $page = $main;  
        
        
                                          //---------- Alle Seiten ----------  
                                          else  {  
                                              echo("<div id=\"body-content\">");  
                                                  if (file_exists("content-php/".$page.".php"))  
                                                      include("content-php/".$page.".php");  
                                                  elseif (file_exists("content-html/".$page.".html"))  
                                                      include("content-html/".$page.".html");  
                                                  else  
                                                      include("content-php/error.php");  
                                              echo("</div>");  
                                              }
      

      Also du übergibst einen Link mit <a href="?site=home">Home</a> und es wird automatisch die home.php included.
      Genauso natürlich mit allen anderen Seiten.

      Ich hoffe es war verständlich :-)
      Wie ich finde auch eine sehr einfache Lösung.

  3. Hi!

    Wie kann ich eine Website aufteilen, sodass ich verschiedene html-Bereiche darstellen kann - und das ohne Frames zu verwenden (aufgrund der inzwischen allseits bekannten Nachteile)???

    Dazu stehen Dir mehrere Möglichkeiten offen.

    Ist sowas mit "einfachem" html bzw. css hinzubekommen

    Nur dann, wenn Du allen Inhalt deiner Website mit einem Dokument auslieferst und zunächst per CSS die nicht benötigten Inhalte 'ausblendest' - vergiß das aber bitte ganz schnell wieder;) Das ist nicht wirklich praktikabel und zumindest ein wenig Javascript wäre auch noch nötig.

    oder wird dafür php benötigt und ein bisschen javascript (wenn sich 2 Inhaltsbereiche ändern sollen)???

    Eine serverseitige Technik (das kann PHP sein, muß aber nicht) sollte Dir zur Verfügung stehen. Damit kannst Du unterschiedliche Inhaltsbereiche (nur als Beispiele: Header, Navigation, Content etc.)je nach angeforderter Ressource (z.B: http://www.example.org/news/2010/feb/23/flowers) auf dem Server "zusammenbasteln" und das ganze als ein HTML-Dokument ausliefern.

    Es existieren hierfür verschiedene serverseitige Ansätze (die Möglichkeit via sog. AJAX Daten nachzuladen und Teilbereiche eines Dokumentes im Client zu aktualisieren lasse ich zunächst mal 'außen vor'[!])

    Wichtige Frage: kennst Du eine serverseitig einsetzbare Technik/Sprache (PHP, Perl, JSP, Python, ASP, ASP.net ...) und unterstützt Dein Provider eine solche?

    Nächste Frage: falls Du noch keine diesbezüglichen Kenntnisse hast, wieviel Zeit (und Nerven) bist Du bereit zu inverstieren?

    off:PP

    [!] Vor allem deshalb, weil dazu auch eine serverseitige Technik erforderlich ist (für den Request nach den zu aktualisierenden Informationen) und das clientseitige Handling /außerdem/ erlernt _und_ erprobt werden müßte.

    --
    "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)