Matthias: Framerahmen einzeln ein-/ausblenden

Hallo!

Ich habe ein Problem mit den Frames in meinen Seiten, ich möchte dort einzelne Framerahmen anzeigen lassen.
Die Seite ist in vier Frames aufgeteilt, und ich bräuchte einen vertikalen Rahmen zwischen allen vier Frames und einen horizontalen Rahmen zwischen den beiden Frames auf der rechten Seite, so etwa (ohne die Rahmen außen):
 ___________________
|         |         |
| Frame a | Frame b |
|         |_________|
|         |         |
| Frame c | Frame d |
|_________|_________|

Momentan verwendet ich folgenden Code, der arbeitet aber nur mit dem IE 5.x so wie erwartet. Mozilla zeigt mir zwar im DOM Inspector die korrekten Werte für die Framerahmen an, zeichnet diese aber trotzdem nicht.

<html>
<head>
<style type="text/css">
frame, frameset{
  border: 0px solid red;
}
.ul{}
.ll{}
.ur{
  border-left-width: 1px;
}
.lr{
  border-left-width: 1px;
  border-top-width: 1px;
}
</style>
</head>
<frameset frameborder=0 framespacing=0 cols="50%,*">
  <frameset rows="50%,*">
    <frame class="ul" src="test.html">
    <frame class="ll" src="test.html">
  </frameset>
  <frameset rows="50%,*">
    <frame class="ur" src="test.html">
    <frame class="lr" src="test.html">
  </frameset>
</frameset>
<noframes></noframes>
<html>

Danke im Voraus,
  Matthias

  1. hi,

    frame, frameset{
      border: 0px solid red;
    .ur{
      border-left-width: 1px;
    }
    .lr{
      border-left-width: 1px;
      border-top-width: 1px;
    }

    halte ich für reichlich sinnfrei, auf diese weise rahmen für frames festlegen zu wollen.

    ich würde die rahmen der frames ganz unterdrücken, wie unter http://de.selfhtml.org/html/frames/eigenschaften.htm#rahmen beschrieben - und dann den _in_ den frames geladenen HTML-dokumenten per CSS einen rahmen für den body verpassen, an den seiten wo sie für den effekt "nötig" sind.

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. Danke, die Rahmen werden jetzt richtig angezeigt.

      Ich verwende jetzt für jedem body:
      height: 100% (darf man das überhaupt?)
      margin: 0
      border-style: solid
      border-color: red
      border-width: ?px ?px ?px ?px

      Leider kann ich jetzt die Frames außer im IE nirgendswo mehr vergrößern/-kleinern. Gibt es dafür vielleicht auch eine Lösung?

      greez,
        Matthias

      1. hi,

        Leider kann ich jetzt die Frames außer im IE nirgendswo mehr vergrößern/-kleinern. Gibt es dafür vielleicht auch eine Lösung?

        nun ja, jetzt sind ja die "echten" frame-rahmen nicht mehr da - diese benutzt man aber normalerweise, um die größe von frames zu ändern ...
        dass du die größe noch ändern wolltest, war aus deiner frage nicht ersichtlich - dann ist mein lösungsvorschlag natürlich ein wenig kontraproduktiv.

        aber beides zusammen, frame-"rahmen" nur an bestimmten seiten [1] _und_ die frames in der größe änderbar, wirst du dann wohl nur noch mit zusätzlichem javascript hinbekommen, was die größe der frames dann beim klicken eines links o.ä. verändert - größe ändern über "ziehen" der rahmen geht so nicht mehr.

        gruß,
        wahsaga

        [1] das ganze wäre ja recht einfach zu machen, wenn sich die browserhersteller an die HTML-spezifikation aus beispiel 1 unter http://de.selfhtml.org/html/frames/eigenschaften.htm#rahmen gehalten hätten. dann würdest du einfach für die frames a und c keinen rahmen angeben, für b und d aber schon.
        aber nein, die browserhersteller mussten sich ja für die in beispiel 2 beschriebene variante entscheiden, dass der rahmen nur für's ganze frameset festlegbar ist ...

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
        1. hi,

          aber nein, die browserhersteller mussten sich ja für die in beispiel 2 beschriebene variante entscheiden, dass der rahmen nur für's ganze frameset festlegbar ist ...

          jetzt bring mich meine eigene formulierung hier noch auf eine idee.

          "Was brauchen wir, Tim?"

          • "Mehr Power, arr, arr, arr ...!"

          ... in diesem fall also "mehr framesets".

          _frame1__ _frame2__
          |         |         |
          | frame a | frame c |
          |         |_________|
          |         |         |
          | frame b | frame d |
          |_________|_________|

          auf oberster ebene ein frameset mit den zwei frames frame1 und frame2, die dann beide wiederum framesets enthalten.

          das frameset in frame1 beinhaltet frame a und frame b und bekommt _keine_ rahmen,
          und das in frame2 beinhaltet frame c und frame d, und bekommt rahmen.
          (rahmen über die HTML-attribute gesteuert.)

          damit müsste der von dir gewünschte optische effekt erreicht sein, und die größenveränderung durch "ziehen" der rahmen m.E. auch noch funktionieren.

          aber ob's schön ist? und bedenke, auch Tim Taylor bekommt durch die power, die er mehr einsetzt, des öfteren auch mehr probleme ...

          gruß,
          wahsaga

          --
          "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
          1. Oh, zu früh geärgert :)

            Danke, ich probiers mal.
              Matthias

          2. Perfekt! Bei mir funktioniert der Ansatz.

            Mein Javascript-Code um auf Frames zuzugreifen schaut zwar etwas lustig aus ( mit dem Hilfframe komme ich auf 4 verschachtelte Frames ), aber egal.

            Danke für deine Hilfe,
              Matthias

            1. hi,

              Perfekt! Bei mir funktioniert der Ansatz.

              klasse.

              Mein Javascript-Code um auf Frames zuzugreifen schaut zwar etwas lustig aus ( mit dem Hilfframe komme ich auf 4 verschachtelte Frames ), aber egal.

              nun ja, wie gesagt ... das es die sache noch etwas weiter kompliziert, war ja abzusehen.

              aber wenn du deine frame-hierarchie einmal verinnerlicht hast, ist auch der zugriff per JS keine allzu große klippe mehr.

              gruß,
              wahsaga

              --
              "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
        2. Wiedereinmal haben die Browserhersteller ihre Weitsicht unter Beweis gestellt.
          Jaja, was solls, ich werd dann nur bei meinem ursprünglichen Code bleiben, da unsere Kunden die Frames unbedingt verziehen können müssen. Schade um die gute Idee.

          Trotzdem danke,
            Matthias