Peter: IFRAME und HEIGHT=% bei NS --- DIV und IFRAME bei IE

Hallo... ich möchte mal ein paar Erfahrungen im Umgang mit IFRAME zum besten geben und habe am Ende des ganzen noch 2 Fragen. Ich habe zum testen die Browser IE 6 und NS 6.2 genommen.

  1. Wenn man nun in eine "jungfräuliche" HTML-Seite einen IFRAME definiert und diesen sich mit height=100% dynamisch an die Browserfensterhöhe anpassen lassen möchte...

<iframe src="innen.htm" name="innen" height=100%>
</iframe>

...erstreckt sich sowohl beim IE als auch beim NS der IFRAME über die ganze Höhe des Browserfensters... so weit, so gut.
Bettet man diesen IFRAME jetzt in eine Tabelle ein...

<TABLE height=100%><TR><TD>
<iframe src="innen.htm" name="innen" height=100%>
</iframe>
</TD></TR></TABLE>

erstreckt sich der IFRAME beim IE wieder übers ganze Fenster, während beim NS nur ein IFRAME mit der Höhe 0 (nur IFRAME-Border) zu sehen ist.
Das Problem wurde schon an anderer Stelle im Forum angesprochen, allerdings mit der "Lösung", man möge "height=100%" auch auf alle dem IFRAME übergeordnete Ebenen anwenden. Damit geht's allerdings auch nicht.

  1. Ärgerlich, aber weiter... da ja Tabellen als Layoutstütze sowieso offensichtlich megaout sind (kann ich nicht ganz nachvollziehen, möchte aber hier keine erneute Diskussion lostreten), hab ich dann versucht, das Problem mit positionierten <DIV>'s statt Tabellen zu lösen (über den Sinn oder Unsinn absoluter Positionierung möchte ich hier auch nicht diskutieren)...

<DIV style="position:absolute; top:200px; left:200px">
<iframe src="innen.htm" name="innen" height=100%>
</iframe>
</DIV>

Und wieder liefern beide Browser höchst unterschiedliche Ergebnisse: Diesmal liefert NS das gewünschte Resultat, indem er einen sich über die ganze Höhe des Fensters erstreckenden IFRAME liefert. Zu meinem Entsetzen gibt IE allerding nur einen kleineren (ca. 200px) IFRAME aus.

  1. Ein "include" per PHP anstatt IFRAME scheidet aus, da beim ständigen Neuladen des Restes der Seite eine größere Datenmenge sinnlos durchs Netz geschleust wird und letztendlich auch meinen Trafficaccount belastet.
    Ebenso scheidet eine absolute Höhenangabe aus diversen Gründen aus. Mit absoluten Höhenangaben im Zusammenhang mit IFRAME reagieren beide Browser gleich)

  2. Jetzt habe ich zwei Fragen: Wie sollten die Ausgaben in obigen Beispielen nach HTML 4 standardmäßig aussehen? Gibt es eine relativ unkomplizierte Löung ohne "include" für beide Browser?

Danke für die Aufmerksamkeit :o)

  1. Hallo,

    1. Jetzt habe ich zwei Fragen: Wie sollten die Ausgaben in obigen Beispielen nach HTML 4 standardmäßig aussehen? Gibt es eine relativ unkomplizierte Löung ohne "include" für beide Browser?

    Hmmmm. Das mit den <div>s hab' ich mir nicht angesehen, aber folgender Code funktioniert bei mir so wie gewünscht im IE 5.5 und Moz 1.0:

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
      <title>test</title>
      <meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">
    </head>
    <body height="100%" style="margin: 0px; padding: 0px;">
    <table height="100%">
      <tbody>
        <tr>
          <td>
            <iframe src="innen.htm" name="innen" height="100%">
            </iframe>
          </td>
        </tr>
      </tbody>
    </table>
    </body>
    </html>

    wobei er die Seite wegen der Doctype im Quirks-Mode rendert, daher müsste man AFAIK die Angabe height="100%" in <body> und <table> durch style="height:100%;" ersetzen, wenn man eine Doctype verwendet, die den Mozilla in den Standards-Compliance mode setzt.

    Grüße,

    Christian

    1. hi,

      Hmmmm. Das mit den <div>s hab' ich mir nicht angesehen, aber folgender Code funktioniert bei mir so wie gewünscht im IE 5.5 und Moz 1.0

      wir haben da wieder mal ein "dickes" Browser-Versions-Problem: IE 5.5 und Netscape 6.x sowie mozilla bis 0.9.9 (und die RC's für mozilla1) machen das so, wie du schreibst. iFrames werden immer auf der obersten Ebene dargestellt, man kann sie zum Beispiel nicht mit z-index festlegen.
      IE 6, Netscape 7 und mozilla1 machen es anders, da ist <iframe> auch mit z-index positionierbar, was bedeutet, daß man auf einer Seite iframes und DIV's gemeinsam einsetzen kann und DIV's auch "über" iFrames gelegt werden können  -  sehr wichtig für rollover-Menüs. Also: in den "modernen" Browsern funktionierts, in den älteren nicht. Der mozilla, mit dem du getestet hast, muß ein RC gewesen sein, die konnten das noch nicht. Bei mir machen sie es alle gleich, aber Opera spielt noch nicht mit, und der Konqueror auch nicht.

      Grüße aus Berlin

      Christoph S.