FF stellt frameborder und Frame-Style nicht dar

  • Ich bastel grad an einer Seite rum, die Frames verwendet.

    Es geht um folgenden Code:

    Im Internet-Explorer werden die Frameborder="1" und CSS-Formatierung dargestellt, im Firefox nicht. Auch die CSS-Angaben im frame-Tag werden vom Firefox (und Opera) scheinbar ignoriert.

    Woran liegt das? Ist der Code nicht Regelkonform? Oder hab ich Fehler drin? Was gibt es für andere Möglichkeiten, die Rahmenlinien von Frames zu formatieren wenn es mit CSS nicht geht?

  • Frames sind nicht dazu gedacht, formatiert zu werden. Wenn du da Rahmen haben willst musst du rahmenlose Frames nehmen und die Seiten, die dort reingeladen werden, mit Rahmen versehen. Der FF verhält sich in jeder von dir genannten Hinsicht völlig standardkonform. Wenn du mehr wissen willst, verweise ich vertrauensvoll auf die einschlägigen Standards, siehe http://www.w3.org , oder auch auf http://de.selfhtml.org . Auf beiden Seiten solltest du ohne Probleme die nötigen Infos finden.

    Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

    Eine Theorie sollte so einfach wie möglich sein, aber nicht einfacher. (A. Einstein)

  • Das Attribut "frameborder" wird auf SELFHTML genannt.

    Gibt es irgendwo eine Übersicht, auf welches HTML-Element (z.B. table, font, div, usw) welche CSS-Eigenschaften überhaupt anwendbar sind? Das fehlt irgendwie bei selfhtml. Daraus seh ich eigentlich nicht, ob ich zum Beispiel border-width auf <frame> anwenden kann, oder?

  • Normalerweise sind, sofern style verfügbar ist, alle Eigenschaften anwendbar. Allerdings machen je nach Element nicht alle Sinn und außerdem können sich die Auswirkungen unterscheiden.
    Für Frames (ich entschuldige mich hiermit für meine durchaus als falsch zu betrachtende Aussage bezüglich des CSS) macht es einfach keinen Sinn, CSS zu interpretieren (obwohl dies nach Standard wohl erlaubt wäre), denn Frames sind rein strukturelle Elemente. Möglicherweise gibt es auch noch andere Gründe warum das nicht eingebaut ist.

    Was die frameborder-Sache betrifft, findest du hier alle relevanten Infos.

    Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

    Eine Theorie sollte so einfach wie möglich sein, aber nicht einfacher. (A. Einstein)

  • Hallo,

    Deinem Code entnehme ich, dass Du keine Rahmen und auch kein Spacing zwischen den Frames haben möchtest.

    Als "ideale" aber nicht absolut W3C-conforme Lösung:

    Code
    ....border="0" frameborder="0" framespacing="0"....

    Dies wird dann ohne Browserweiche generell verstanden.
    Hinsichtlich css-Tags in Framesets solltest Du lieber den "externen" Weg gehen und über id's/classesetc. arbeiten, sprich die Definition ausserhalb der eigentlichen Frameset-Definition vornehmen.

    Meine aktuell benutzte Konfiguration !
    Nicht der Wind bestimmt die Richtung, sondern das Segel ! (Lao Xiang, China)
    Wandel und Wechsel liebt, wer lebt ! (Richard Wagner, Bayreuth)
    Seit wann sind wir dem Wähler - und nicht nur Gott - Rechenschaft schuldig ?! (CSU, München)

  • Ich wollte die Frames per CSS so gestalten, dass ich praktisch um die 3 "inneren" frames einen Rahmen hab. Per HTML geht das nicht, da ich da nur entweder alle 4 Rahmen pro Frame anzeigen kann oder gar keinen. Ich wollte aber z.b. nur den oberen und unteren...oder links+oben+unten.

    Die Formatierung wird dann schon in einer separaten CSS-Datei und class="..." erfolgen, hab ich aber jetzt mal zum testen hier weggelassen weil's so wie's aussieht sowieso nicht funktioniert im Firefox.

    Und das Argument, dass Frames nicht zum gestalten da sind gefällt mir nicht ;) Wie sollte ich sonst so einen oben beschriebenen Rahmen darstellen wenn nicht über den Frame :?:

    Wer's sehen will was ich meine kann sich die Testseite mit dem Internet Explorer anschauen: *klick*

  • Nur mal so prinzipiell: HTML, CSS und JS sind international standardisiert.
    Egal, ob es einem gefällt oder nicht. Es ist keine persönliche Geschmackssache,
    verwende ich das muß ich mich an den Standard halten ansonsten geht`s halt
    nicht richtig.

    Oder wie machst Du das beim Autofahren ?

    (Da gibt es auch Vollpfosten die meinen das sei nicht nötig. Der größte fängt
    mit einem 'M' an und hört mit 'icrosoft' auf).

    Laß Dir das nicht vermiessen, just rtfm und gut is.

    Grüße aus dem Spessart, Joe

  • Ich habe es nicht geglaubt, deswegen habe ich Deinen Code genommen und mal ausprobiert.

    Stimmt, mit den Frame-Attributen funktioniert es nicht, z.B. nur um Seite3.htm einen Frame zu legen.

    Also schritt ich zu CSS, habe schön meine #meins0...#meins7 mit unterschiedlichen Attributen für Rahmen definiert (von keinem, über Farbe, Stärke).

    Siehe da: während der IE noch lange Zeit mithalten konnte, ignoriert der Firefox die meisten Varianten.

    Nun bin ich sicherlich nicht "der" Webexperte, aber jedenfalls gelang es mir auch nicht, hier unterschiedliche Rahmenverhalten hinzubekommen.

    DAS wiederum überrascht mich schon sehr.

    Vielleicht kann ja mal ein Webspezialist einen Hinweis geben, scheinbar kann es nur über irgendwelche Tricks funktionieren.

    Meine aktuell benutzte Konfiguration !
    Nicht der Wind bestimmt die Richtung, sondern das Segel ! (Lao Xiang, China)
    Wandel und Wechsel liebt, wer lebt ! (Richard Wagner, Bayreuth)
    Seit wann sind wir dem Wähler - und nicht nur Gott - Rechenschaft schuldig ?! (CSU, München)

  • Zitat von liracon

    Ich habe es nicht geglaubt

    Ich will's immer noch nicht glauben ;)
    Opera verhält sich allerdings in dieser Hinsicht genau gleich. Frameborder und CSS werden so wie's aussieht ignoriert.

    Inzwischen hab ich schon versucht, dem <html> Element einen Rahmen zuzuweisen, das funktioniert im IE auch so wie ich mir das vorgestelle, im FF und Opera wird der Rahmen nur um den tatsächlichen Inhalt, also z.B. Schrift gelegt, nicht um das ganze Dokument, wie ich es mir eigentlich dachte.

  • Zitat von Userxyz

    ... Ich will's immer noch nicht glauben ;)
    Opera verhält sich allerdings in dieser Hinsicht genau gleich. Frameborder und CSS werden so wie's aussieht ignoriert.
    ...


    Spätestens jetzt solltest Du stutzig werden, wenn nur der IE auf Deinen Code reagiert. Schau Dir einmal diesen Link an: http://www.css4you.de/ Da wird alles sehr schön erklärt (auch Frames), und schau Dir einmal iframes an ...

    Schöne Grüße von/aus Hernals
    Hart: AMD Athlon II X3, 3 GB Ram, NVIDIA GEFORCE 315, LAN (Chello Wien)
    Weich: W7 Home Premium 64-bit SP1, Fx aktuell (deutsch); Personas: Brushed Metal XP
    Sicher: Windows Firewall

  • Ich glaube wir müssen hier mal einiges klarstellen. Die HTML-Spezifikation erlaubt es sehr wohl, CSS für Frames zu benutzen. Nur die meisten Browser unterstützen das nicht, weil es der eigentlichen Grundaufgabe von Frames widerspricht. Insofern kann man dem IE hier eigentlich keinen Vorwurf machen.

    Dass man <html> nicht formatieren kann ist eigentlich logisch, da es lediglich das umschließende Element ist und erstmal keine Anzeige bewirkt. Versuchs doch mal im <body>-Tag ;)

    Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

    Eine Theorie sollte so einfach wie möglich sein, aber nicht einfacher. (A. Einstein)

  • Die Idee mit <html> hatte ich aus nem anderen Forum. Mit Body würd's vermutlich auch gehen, wenn man die Abstände und die Höhe entsprechend angibt. Habs jetzt über ein <div> Container gemacht und funktioniert in IE, FF, Opera. Netscape hab ich grad nicht drauf...

    Nur finde ich, wäre es um ein vielfaches einfacher die Frame-borders zu formatieren, anstatt andere Elemente auf die Frame-Border zur zerren und dann zu formatieren, auch wenn das von mir aus nicht der Sinn von Frames sein soll...Aber so ists nunmal. 1000 Wege führen zum Ziel....

    Thanx