• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frames benutzen?

Html-bastler

Neues Mitglied
Hi, ich bin noch ein totaler Anfänger und ich bin grad dabei ne eigene Seite zu bauen. Nun habe ich das problem, dass wenn jmd z.B. auf "News" klickt dann soll der Text von den News in einem bestimmt Bereich der Webseite erscheinen. das kann man ja mit Frames machen aber wie mache ich das mit dem Hintergrundbild? oder kann ich die news.html transparent machen?
 
Willkommen im Forum.

Du müsstest die Hintergrundfarbe des Frames auf transparent setzen können. Etwa per CSS.

- CSS Background

Du solltest allerdings keine Frames verwenden.
 
Individuelle Einzelseiten.

Ich nehme an, du bist auf die Idee gekommen, Frames zu verwenden, um wiederkehrende Seitenelemente (Header, Footer, Menü, andere Navigationselemente, …) zentral definieren zu können, statt sie redundant in jede Datei setzen zu müssen?

Dafür gibt es in reinem HTML leider tatsächlich keinen zufriedenstellenden Mechanismus.

Ein Ausweg ist serverseitiges Preprocessing vor dem Ausliefern der Seite an den Browser.

Erstbester Link dazu:

- PHP Include statt Frames

Das Problem ist, dass du dafür eine Scriptsprache wie etwa PHP einsetzen musst (wenn auch nur für einen Befehl ;)). Um PHP lokal ausführen zu können, benötigst du dann gleich ein Webserver-Paket wie etwa XAMPP (apache friends - xampp).

Das mag sehr kompliziert erscheinen, ist aber meines Erachtens der beste Weg an Frames vorbei, falls du diese aus dem Grund einsetzt, den ich eingangs umrissen habe.


Beim Generieren von Internetseiten mit wiederkehrenden Elementen führt in meinen Augen kaum ein Weg an diesem Preprocessing-Schritt vorbei. Manche Editoren bieten dafür integrierte Template-Funktionalität an, die im Grunde nichts anders ist. Sowas möchte ich aber nicht empfehlen, da es nie gut ist, seinen Workflow von einem speziellen Editor abhängig zu machen.


Noch ein Schritt weiter: MVC (Das aber nur sehr am Rande.)
 
Zuletzt bearbeitet:
PHP habe ich mir schonmal angeschaut. Jetzt muss ich nur eine Head- und eine Footer.php erstellen und dann immer am Anfang und am Ende includen?
 
Das wäre für den Anfang die einfachste Möglichkeit, ja.

Da du dir PHP schon mal angeschaut hast: Aus verschiedenen Gründen ist es generell günstiger, genau umgekehrt vorzugehen und den konkreten Inhalt per Include in ein HTML-Gerüst einzufügen. Darum geht es bei dem MVC-Link in meinem letzten Post. Das Beispiel dort ist allerdings – wie gesagt – noch ein paar Schritte weiter.

Ganz simpel (und tendentiell nicht ausreichend „sicher“):

PHP:
<?php

if (!isset($_GET['page'])) {
    $_GET['page'] = 'index';
}

?><!DOCTYPE html>

<html lang="en">

    <head>
        <meta charset="utf-8" />
        <title>Meine Seite</title>
    </head>

    <body>

        <?php include './pages/' . $_GET ['page'] . '.html'; ?>

    </body>

</html>

Ein Aufruf von index.php würde eine Seite generieren, die den Inhalt aus pages/index.html darstellt.

Ein Aufruf von index.php?page=about würde eine Seite generieren, die den Inhalt aus pages/about.html darstellt.

Und so weiter.
 
Zurück
Oben