Supportnet Computer
Planet of Tech

Supportnet / Forum / Webseiten/HTML

frameübergreifender Hintergrund...





Frage

Ich versuche seit einiger Zeit eine Website mit Hilfe von Frames zu erstellen, nun will ich einen Hintergrund einarbeiten der über die gesamte Website gehen soll! Als erstes hab ich versucht einfach ein background Attribut ins frameset zu schreiben ^^ Klar das das nicht funktioniert hat ;-) Meine zweite Idee war dann das ganze per Javascript zu versuchen ... leider hab ich auf den vielen html-helpseiten auch keine passendes Script gefunden. Nun wende ich mich hilfesuchend an euch ;-) Postet hier bitte mal eure Ideen wie man soetwas realisieren kann!

Antwort 1 von S1lv3R

Achja was ich noch vergessen habe; in verschiedenen frames sind schon teilweise Grafiken als Hintergründe notiert also wenn es möglich ist sollte der große Hintergrund in einer Art Layer oder sowas angeordnet sein ;-)

Antwort 2 von sutadur

Vergebliche Mühe, das geht nicht.

Antwort 3 von S1lv3R

oh *Z* ... :(
könnte man denn theoretisch den hintergrund aufteilen ohne das man Übergänge zwischen den verschiedenen frames sieht ?
Oder läuft das dann darauf hinaus das die Auflösung oder der Browser das Bild sozusagen verzerren würde?

Antwort 4 von Dixi

Hi, in jedem Frame wird das Bild separat dargestelt. Um einen einheitlichen Hindergrund zu bekommen kannst du nur Farben oder fein strukturierte Grafiken als Hintergrund nutzen, indem du diese in jede Frame-Seite einträgst. Sie hier .

MfG

Antwort 5 von S1lv3R

Also bei dem Hintergrund sollte eigentlich
dieses
Bild verwendet werden.
Wenn ich das jez richtig verstehe ist es unter keinen Umständen möglich dieses Bild als Hintergrund zu verwenden sodass es über alle Frames geht ohne das es verzerrt dargestellt wird?
Was für Möglichkeiten hab ich denn sonst? Php?
Wo würde ich gegebenenfalls gute Tutorials dazu finden?
Ich sag schonmal danke im voraus ;-)

Antwort 6 von Dixi

Alternative wäre keine Frames zu verwenden. Es ist neben anderen Problemen auch aufwendiger WEB-Seiten mit Frames suchmaschinengerecht zu gestalten.

MfG

Antwort 7 von sutadur

Zitat:
könnte man denn theoretisch den hintergrund aufteilen ohne das man Übergänge zwischen den verschiedenen frames sieht ?

Das geht auch praktisch, wenn man vorher genau weiß, wie breit die einzelnen Frames sind. Dann kann man die Grafik pixelgenau zurechtschneiden. Leider werden Frames nicht in allen Browsern 100%ig gleich dargestellt. Was also im IE noch ganz gut aussieht, kann im Mozilla schon wieder ziemlich zerstückelt rüberkommen. Alles in allem würde ich das so nicht machen, dann besser auf Frames verzichten.

Antwort 8 von S1lv3R

hmmm also das bringt mich ja schonmal weiter. Ich werde dann wohl auf frames verzichten.
Ich hab irgendwo mal gelesen das man mit Php die gleichen positiven Effekte erzielen kann wie mit frames. Wäre das eine gute Lösung für mein Problem?
Schonmal danke für die zahlreichen und schnellen Antworten! :-)

Antwort 9 von sutadur

Zitat:
Ich hab irgendwo mal gelesen das man mit Php die gleichen positiven Effekte erzielen kann wie mit frames.

Da wirfst Du etwas durcheinander. PHP ist eine Scriptsprache, womit Du u.a. eine gewissen Dynamik in Deine Webseiten bringen kannst, in dem sie z.B. erst beim Aufruf aus bestimmten Daten generiert werden. Das ist zwar auch ein "positiver Effekt", aber wohl nicht das, was Du meinst. Eher passt da schon ein Hinweis auf CSS, wenn Du die Positionierung der versch. Elemente (z.B. Menü und Inhalte) ansprichst.

Antwort 10 von S1lv3R

Hmmm aso :(
Wenn du mir zu CSS raten würdest hast du bestimmt einen Link zu einer kompetenten Page wo ich Hilfe zu CSS finde, denn so wie ich des sehe hat man bei css keine chance über die grafische Ebene laufen zu lassen sondern muss alles coden oder?

Antwort 11 von sutadur

Wenn Du Wert auf den o.g. Hintergrund legst, spricht nichts dagegen, diesen als Hintergrundbild einzubinden. Aber das geht eben nicht vernünftig mit Frames. Und ob Du die einzelnen Elemente dann in Form einer Tabelle oder mit CSS anordnest, würde ich erstmal Dir überlassen ... :o)

Antwort 12 von S1lv3R

hmmm jo Fakt is wohl das CSS ordentlich kompliziert ist! und da ich nicht vorhatte einen vorgefertigten Style zuverwenden wären wohl nur die Tabellen eine Lösung, allerdings eine reichlich unbefriedigende ^^
Naja ich werd mich ersma an die Arbeit machen die ganzen Frames in ein Dokument umzucoden,
danke für eure Hilfe soweit ;-)

Antwort 13 von sutadur

Welchen konkreten Vorteil versprichst Du Dir denn von den Frames? Welche gravierenden Nachteile gegenüber Frames würden sich denn Deiner Ansicht nach aus einem Tabellenlayout ergeben?

Antwort 14 von rfb

Zitat:
Fakt is wohl das CSS ordentlich kompliziert ist!
Quatsch!

Verglichen mit den Layouttabellenungetümen ist CSS simpel.
Du musst es nur lernen!
  • www.css4you.de
  • SelfHTML

    Tabellenlayouts sind schwer zu pflegen und extrem langsam im Seitenaufbau (wie sogar hier im Supportnet oft genug zu merken).
    Zudem sind sie nicht barrierefrei: textorientierte Browser können mit Layouttabellen wenig anfangen - Sehbehinderte Surfer nutzen aber oft Systeme, die auf solchen Browsern aufbauen, um sich die Seite z.B. vorlesen zu lassen (Frames sind aus ähnlichen Gründen ebenfalls nicht barrierefrei).

  • Antwort 15 von sutadur

    Zitat:
    Verglichen mit den Layouttabellenungetümen ist CSS simpel.

    Trotzdem ist ein Tabellenlayout in aller Regel wesentlich einfacher zu erstellen - auch gerade für einen CSS-Neuling.

    Zitat:
    Tabellenlayouts sind schwer zu pflegen und extrem langsam im Seitenaufbau ...

    Je nach Inhalt ist es u.U. gar nicht nötig, eine Webseite dauernd zu aktualisieren, und man kann m.E. auch nicht von extrem langsam beim Seitenaufbau sprechen. In der Praxis dürfte es den meisten ziemlich egal sein, ob eine Seite nun in fünf oder sieben Sekunden aufgebaut ist.

    Zitat:
    Zudem sind sie nicht barrierefrei: textorientierte Browser können mit Layouttabellen wenig anfangen ...

    Wie hoch ist der Anteil derer, die einen textorientierten Browser nutzen (müssen)? Während eine Berücksichtigung im gewerblichen Bereich durchaus sinnvoll ist (schließlich ist jeder Besucher ein potentieller Kunde), sehe ich das im privaten Bereich ganz anders, auch deshalb, weil private Webseites meist ohnehin in der Masse untergehen und nur eine sehr begrenzte Zahl von Besuchern aufweisen können. Deine Bemühungen um Barrierefreiheit, so wichtig das auch sein mag, in allen Ehren. Aber letztlich scheint es mir oftmals so, dass viele barrierefreie Internetseiten gestalten wollen, weil "man es ja so macht" - ohne zu Hinterfragen, ob es im Einzelfall sinnvoll ist oder ob der Aufwand, den man als Entwickler dafür betreiben muß, sich lohnt. Das Internet ist nun einmal in erster Linie ein visuelles Medium. Und die Mehrheit der Internetnutzer ist zum Glück nicht in irgend einer Art und Weise körperlich beeinträchtigt. Insofern halte ich es für unangemessen, wirklich jede Internetpräsenz barrierefrei gestalten zu "müssen".

    Antwort 16 von rfb

    wie leicht jedeR behindert werden kann (und dies eigentlich freiwillig) zeigt dieser Text:
    Kinder und Barrierefreiheit: Es ist wichtig
    Ich glaube, deine Annahme, nur wenige Menschen im Netz seien behindert, wird damit gut und humorvoll widerlegt.

    Zum anderen: durch eine Behinderung verliere ich doch nicht gleichzeitig alle Interessen. Bsp: Nur weil jemand beim Freihandklettern einmal abgestürzt ist, dadurch eine Behinderung davonträgt, die das Sehen oder die Motorik einschränkt, kann er/sie doch trotzdem weiterhin Interesse an der Homepage des Klettervereins haben.

    Insofern halte ich es für angemessen, jede Internetpräsenz barrierefrei zu gestalten (zu versuchen) - zumal es so einfach ist.

    Antwort 17 von sutadur

    Zitat:
    Ich glaube, deine Annahme ... wird damit gut und humorvoll widerlegt.

    Das ist nicht nur meine Annahme. Es gibt Statistiken, die einen Anteil an behinderten Internetusern von unter deutlich unter einem Prozent ausweisen. Natürlich kann ich nichts zu der Seriösität dieser Zahlen sagen, aber ein Anhaltspunkt ist es sicher.

    Zitat:
    ... zumal es so einfach ist.

    Wenn man es konsequent machen möchte, muß man sich schon ein wenig damit auseinandersetzen, insbesondere mit den Eigenheiten von CSS und der Interpretation durch versch. Browser. Ganz so "einfach" ist gerade für einen Anfänger eine barrierearme Umsetzung einer Homepage daher nicht, wirklich barrierefrei ist nahezu unmöglich.

    Auf jeden Fall sind wir uns wohl zumindest in diesem Fall wohl einig, dass der Fragesteller seine Webseite ohne Frames gestalten sollte ... :o)

    Antwort 18 von Dixi

    Webseite Frame und Tabellen frei und wenn möglich nur mit absoluter Positionierung gestalten.

    Antwort 19 von S1lv3R

    *hehe* Schön das ihr so eifrig diskutiert
    mitlerweile bin ich allerdings von selber zu der Ansicht gekommen das Tabellenlayouts Müll sind!
    Um nochmal zu den Vorteilen von frames zukommen;
  • die ganze Website is einfacher zu struktorieren, grade für Anfänger, wenn ich zum Beispiel nen Javascript habe und keine Ahnung hab wie ich des platzieren kann mach ich einfach nen neuen frame und schon passt es genau...
  • natürlich die Möglichkeit alles zentral zu bearbeiten, grade wenn man oft etwas ändern will...
    Des waren so meine zwei Hauptgründe für frames und genau das bietet mit ein Tabellenlayout wohl nicht!
    Deshalb mach ich mich mal an CSS, danke für die beiden links rfb!

  • Antwort 20 von S1lv3R

    *hust* Ich hät nochmal nen kleines Problem welches CSS / Javascript betrifft, ich hoff des is ok wenn ich den Thread nochma benutz .. ; also des Prob entsteht wenn ich ein Javascript in mein Dokument einbinden will, ich benutze ein externes CSS-dokument welches die ganzen Blockelemente und Styles definiert, das funktioniert auch wunderbar bis ich das Javascript einbinde, das Script liest die Zeit aus und schreibt sie in das Dokument:
    document.write("<font color=" + fontcolor + " face=" + fontface + " size=" + FontSize + ">")
    if (Centered == "Yes") {document.write("<center>")}
    else {document.write("")}

    Das Probleme ist nun das alle Definitionen von dem CSS-Dokument überschrieben sind. Also das Center Attribut und die Schriftgröße-farbe wird für das gesamte Dokument überschrieben!

    Antwort 21 von sutadur

    Zitat:
    ... und wenn möglich nur mit absoluter Positionierung gestalten.

    Genau das sollte man eigentlich vermeiden um sicherzustellen, dass sich die Darstellung automatisch ans Ausgabemedium anpaßt. Das ist bei absoluter Positionierung nicht der Fall, sondern bei relativer.

    Antwort 22 von rfb

    ein paar Anmerkungen dazu nur, da ohne den vollständigen Code hier wohl kaum zu helfen ist:

    - die Weiternutzung eines Threads zu anderem Thema ist keine gute Idee

    - vermeide CSS und font- sowie center-tag (nicht Attribut!) zu kombinieren (vermeide diese veralteten Layout-tags am besten komplett)

    Antwort 23 von rfb

    als Alternative biete ich dir diese Lösung. Vorteil: alle Formatierungen bleiben im CSS, im JavaScript kommen die überhaupt nicht vor. Stattdessen wird ein vorhandener Text ("der schönste Tag meines Lebens") in einem <span>, den du nach Herzenslust per CSS gestalten kannst, ersetzt durch die Datumsausgabe (lässt sich natürlich auf beliebige andere Ausgaben ändern, wichtig ist die fette Zeile).

    <html lang="de">
    <head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    <script type="text/javascript">
    <!--
    function datum_ausgeben() {
    var tage = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Sonnabend");
    var monate = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
    var heut = new Date();
    var wota = heut.getDay();
    var monat = heut.getMonth();
    var jahr = heut.getFullYear();
    var tag = heut.getDate();
    var datum = tage[wota]+´, ´+tag+´. ´+monate[monat]+´ ´+jahr;
    document.getElementById("hier_das_datum").firstChild.nodeValue = datum;
    }
    //-->
    </script>
    </head>
    <body onload="datum_ausgeben()">
    heute ist <span id="hier_das_datum">der schönste Tag meines Lebens</span>
    </body>
    <html>


    Antwort 24 von S1lv3R

    Stimmt hätte wirklich nen neuen Thread aufmachen sollen ... mit dem ganzen code wollte ich euch nicht belästigen weil ja eigentlich nur die Zeilen wo es um die Formatierung geht wichtig sind! aber hier bitte:
    (die ganzen ifs und elses erspar ich euch dennoch ^^)

    [CODE]
    RightNow = new Date();
    var janet = RightNow.getDate();
    var bob = RightNow.getFullYear();
    var bob2 = RightNow.getYear();
    var charlie = RightNow.getMonth() + 1;
    var mike = RightNow.getDay();
    var theHour = RightNow.getHours();
    var theMinutes = RightNow.getMinutes();
    var theSeconds = RightNow.getSeconds();
    var TimeZone = RightNow.toGMTString();

    // ARRAY INFORMATION

    var writtenday = new Array(7)
    writtenday[0] = "Sunday"
    writtenday[1] = "Monday"
    writtenday[2] = "Tuesday"
    writtenday[3] = "Wednesday"
    writtenday[4] = "Thursday"
    writtenday[5] = "Friday"
    writtenday[6] = "Saturday"

    var WriteMonth = new Array(13)
    WriteMonth[0] = "null"
    WriteMonth[1] = "January"
    WriteMonth[2] = "February"
    WriteMonth[3] = "March"
    WriteMonth[4] = "April"
    WriteMonth[5] = "May"
    WriteMonth[6] = "June"
    WriteMonth[7] = "July"
    WriteMonth[8] = "August"
    WriteMonth[9] = "September"
    WriteMonth[10] = "October"
    WriteMonth[11] = "November"
    WriteMonth[12] = "December"
    var NewDateValue = janet + 1

    // IF AND ELSE STATEMENTS

    document.write("<font color=" + fontcolor + " face=" + fontface + " size=" + FontSize + ">")
    if (Centered == "Yes") {document.write("<center>")}
    else {document.write("")}

    if (TurnOnAMPM=="Yes") {
    if (theHour<="12"){AMPM="AM"}
    else {AMPM="PM"}
    }


    if (ShowWelcome=="Yes") {
    if ((theHour>=0) && (theHour<=6)){ document.write("Good Early Morning")}
    if ((theHour>=7) && (theHour<=11)){ document.write("Good Morning")}
    if ((theHour>=12) && (theHour<=16)){ document.write("Good Afternoon")}
    if ((theHour>=17) && (theHour<=20)){ document.write("Good Evening")}
    if ((theHour>=21) && (theHour<=23)){ document.write("Good Night")}
    }
    else {document.write("")}
    if (WelcomeSameLine=="Yes") {document.write("; it´s ")}
    else {document.write("!<br>")}

    if (ShowProperDate=="Yes") {
    end = "th";
    if (janet==1 || janet==21 || janet==31) end="st";
    if (janet==2 || janet==22) end="nd";
    if (janet==3 || janet==23) end="rd";
    janet+=end;
    }
    else {janet=janet}

    if (MilitaryTime=="Off") {if (theHour>="13") theHour-=12 }

    if (theSeconds < 10) {theSeconds="0"+theSeconds}
    if (theMinutes < 10) {theMinutes="0"+theMinutes}
    if (ShowDate=="Yes") {
    if (UserAnswer=="1") {document.write("" + writtenday[mike] + ", " +WriteMonth[charlie] + " " + janet + ", " + bob + "")}
    if (UserAnswer=="2") {document.write("" +WriteMonth[charlie] + " " + janet + ", " + bob + "")}
    if (UserAnswer=="3") {document.write("" + charlie + "/" + janet + "/" + bob + "")}
    if (SameLine=="No") {document.write("<br>")}
    else {document.write(" and it´s ")}
    }
    else {document.write("")}
    if (ShowTime == "Yes") {
    if (TimeFormat == "1") {document.write(" " + theHour + ":" + theMinutes + ":" + theSeconds + " ")}
    if (TimeFormat == "2") {document.write(" " + theHour + ":" + theMinutes + " ")}
    document.write(" " + AMPM + " ")
    }
    else {}

    if (Centered == "Yes") {document.write("</center>")}

    document.write("</font>")
    }


    an dem Code erkennt man schon das das ganze doch ein bischen komplexer ist als der code von rfb den ich dankend zur Kenntnis nehme ;-)
    Ach rfb ich verstehe nicht wie ich sonst die Position des Scriptes bestimmen soll die einzigste Funktion die ich zur posionierung habe ist doch das Centertag oder nicht? Ich kann die Position ja eh nirgendwo bestimmen das Script wird automatisch direkt am "Top" des Dokumentes eingeblendet, bei der Framesetvariente konnt ich einfach nen frame extra für das Script machen welches ja die Position automatisch festlegt, bei dem Css bin ich in dieser Hinsicht ziemlich hilflos!
    Wenn euch des weiterhilft kann ich des ganze auch hochladen um zu zeigen wie sich das Dokument verändert.
    mfg S1lv3R

    Antwort 25 von rfb

    Zitat:
    die einzigste Funktion die ich zur posionierung habe ist doch das Centertag
    bist du sicher, dass du CSS kennst? Dann würdest du nämlich wissen, dass du per CSS links, rechts und mittig ausrichten kannst und auch sonst eine große Vielzahl von Formatierungsmöglichkeiten hast.
    <center> ist vollkommen überflüssig, ebenso <font>

    Der wesentliche Unterschied zwischen deinem Script und meinem ist, dass ich nach dem Seitenladen einen Teil der (bereits mit CSS gestalteten) Seite austausche, während dein Script während des Ladevorgangs zusätzlichen Inhalt mit veralteten tags zur Formatierung dazwischen schreibt.

    Antwort 26 von S1lv3R

    Hab mich vielleicht missverständlich ausgedrückt natürlich hab ich mehr möglichkeiten CSS zu formatieren aber wo hab ich Möglichkeiten das Script zu positionieren?

    Antwort 27 von rfb

    Zitat:
    aber wo hab ich Möglichkeiten das Script zu positionieren?

    wenn du dir meinen Code in Antwort 23 zu Gemüte führst siehst du es doch: das Script steht im head-Bereich (oder in einer externen JS-Datei).
    Nur das was das Script verändert steht im body, völlig unabhängig von dem JavaScript-Teil,.
    und dort kannst du es beliebig per CSS gestalten, z.B.
    ...
    <body onload="datum_ausgeben()">
    <p style="textalign:center; color:white; background:black">Heute ist <span id="hier_das_datum">der schönste Tag meines Lebens</span>.</p>
    </body>
    ...


    Antwort 28 von rfb

    vielleicht nochmal die Wirkungsweise des Scripts in Antwort 23/27 in Ruhe erklärt.

    Beim Einlesen der Seite stößt der Browser auf den JS-Teil im head. darin befindet sich die Funktion datum_ausgeben(). Funktionen werden erst nach Aufruf ausgeführt, also macht der Browser erst einmal gar nix weiter damit, sondern baut erst einmal die Seite komplett auf, es erscheint der Text
    Zitat:
    Heute ist der schönste Tag meines Lebens.

    Da im body-tag das onload-Attribut steht, führt der Browser anschließend den darin stehenden Funktionsaufruf aus
    Zitat:
    body onload="datum_ausgeben()"

    Die JavaScript-Funktion bastelt erst das Datum zusammen und überschreibt dann einen Teil des Textes im Browserfenster, nämlich den innerhalb von
    Zitat:
    <span id="hier_das_datum">...</span>
    Dies geschieht mit
    Zitat:
    document.getElementById("hier_das_datum").firstChild.nodeValue = datum
    (Andere Bereiche - mit einer anderen id statt "hier_das_datum" - könnten genauso mit anderen Angaben überschrieben werden.)

    Da dieser Teil innerhalb eines mit style="..." formatierten Absatzes steht, übernimmt er natürlich auch diese Formatierung (übrigens sollte es richtig in Antwort 27 text-align heißen).

    Antwort 29 von S1lv3R

    Ah habs jez soweit verstanden :-)
    das einzigste ist jez noch das dein Script bei mir nicht funktioniert ^^
    Aber sonst vielen Dank für deine Hilfe!