Martin: Netscape, Grafik in Tabellen

Hi Forum,

ich habe das Archiv schon durchsucht, wurde aber nicht fündig..

Folgender Code soll die Titelleiste werden:

1: <div id="Layer1" style="position:absolute; left:1px; top:1px; width:100%;
2: height:64px; z-index:1">
3:
4: <table width=100% border="1" name="Titelzeile">
5: <tr>
6:  <td valign=top width=200><img src="../Grafik/RuleTopRot.gif" height=26
7:  width=200></td>
8:  <td width=68><img src="../Grafik/RotWap1.gif" width="40" height="60" alt="Emblem"></td>
9:  <td valign=top width=100%><img src="../Grafik/RuleTopRot.gif" height=26
10: width=99%></td>
11: <td valign=top><font color="#FFFFFF"><b><i>Kontakt</i></b></font></td>
12:</tr>
13:</table></div>

Beabsichtigt ist, daß sich die Zelle in Zeile 9 der Fensterbreite anpaßt, und zwar inklusive der darin definierten Grafik.
Mit MSIEP5 kein Problem - der macht das, wie ich es will (wahrscheinlich, weil er den Code "korrigiert").
Aber NN4.5! -> Det Text aus der folgenden Zelle (Zeile 11) geht natürlich über den Fensterrand hinaus. Klar, die Zellenbreite geht vor der Tabellenbreite.
Wie kann ich das Problem Netscape-Konfrom lösen (habe es auch schon mit übereinanderliegenden <div>'s probiert. Das ist aber auch mit dem Resize-Fix-Javascript nicht der wahre Jakob..)

Danke

Grüße, Martin

  1. 9: <td valign=top width=100%><img src="../Grafik/RuleTopRot.gif" height=26

    10: width=99%></td>

    hi martin,

    ich habe mit netscape die erfahrung gemacht, wenn du bei einem bild eine längen- oder höhenangabe in prozent angibst, dann will er die nicht fressen. probier's mal mit ner konkreten angabe in pixel.

    good luck. fReaK

    1. Hi fReaK,

      probier's mal mit ner konkreten angabe in pixel.

      DAS ist es ja gerade! Ich möchte gerne, daß siech die Größe der Zelle rechts vom Emblem dynamisch der Browserfenstergröße anpaßt. Und zwar samt der darin enthaltenen "Ruler"-Grafik. (<hr style="color:rgb(...)>) akzepiert auch nur der MSIEP).

      Aber so langsam glaube ich daß wird so nichts...

      Danke und Gruß

      Martin

      1. Hallo Martin!

        DAS ist es ja gerade! Ich möchte gerne, daß siech die Größe der Zelle rechts vom Emblem dynamisch der Browserfenstergröße anpaßt. Und zwar samt der darin enthaltenen "Ruler"-Grafik. (<hr style="color:rgb(...)>) akzepiert auch nur der MSIEP).

        Eine Lösung mit einem Nachteil (unter NS ging es nicht beim "position:absolute")
        <html>
        <head>
        <title>Test 1</title>
        <script language="JavaScript">
        <!--
        function bild(){
          var x, y;
          if (document.layers){
          x = self.innerWidth;
          }
          else {
          x = document.body.clientWidth;
          }
          breite = x-368;
          document.write("<img src="../Grafik/RuleTopRot.gif" height="26" width=""+breite+"">");
        }
        //-->
        </script>
        </head>
        <body>
        <div id="Layer1" style="width:100%; height:64px;">
        <table width=100% border="0" cellpadding="0" cellspacing="0" name="Titelzeile">
        <tr>
        <td valign="top" width="200"><img src="../Grafik/RuleTopRot.gif" height="26" width="200" alt=""></td>
        <td width="68"><img src="../Grafik/RotWap1.gif" width="40" height="60" alt="Emblem"></td>
        <td valign="top"><script language="javascript">bild();</script><noscript><img src="../Grafik/RuleTopRot.gif" height="26" width="432"></noscript></td>
        <td valign="top" width="100"><font color="#000000"><b><i>Kontakt</i></b></font></td>
        </tr>
        </table>
        </div>
        </body>
        </html>

        Grüße
        Thomas

        1. Hi Thomas,

          Ich habe offensichtlich auch eine Lösung gefunden - falls es jemanden interessiert ;-)

          Funktioniert mit NS 4.05 und 4.51!
          Mit MSIEP 5.0 funzt es auch. Kann ich davon ausgehen, daß dann Version 4.0 auch in Ordnung geht?

          <body bgcolor="#003434">

          ####folgendes div zeigt mir die Ruler-Grafik immer über die gesamte Fensterbreite an (daß, was ich ja wollte). Die Titelzeile steht immer rechts (hier ist in MSIEP und NS die Darstellung nicht ganz identisch, aber damit muß man leben)#########

          <div id="Layer1" style="position:absolute; left:1px; top:1px; width:100%;  
          

          height:64px; z-index:1">
            <layer>
            <table width="100%" name="Titelzeile">
             <tr>
              <td nowrap valign=top><img src="../Grafik/RuleTopRot.gif" height=16
              width="93%"><img src="../Grafik/RuleTopRot.gif" height=16
               width="10">#sonst ist im IEP wegen der 93%der Abstand zu "Kontakt zu          groß#
              </td>
              <td valign=top width=7><fontcolor="#FFFFFF"><b><i>Kontakt</i></b></font>
              </td>
             </tr>
            </table>
            </layer>
          </div>

          ####folgendes div zeigt mir zentral das Emblem an#########

          <div id="Layer1" style="position:absolute; left:255px; top:0px; width:50px;  
          

          height:64px; z-index:3">
             <layer>
             <table>
              <tr align="center" valign="Top">
               <td><img src="../Grafik/RotWap1.gif" width="40" height="60"
                 alt="Emblem">
                </td>
              </tr>
             </table>
             </layer>
          </div>

          ####folgendes div brauche ich für die NS's, damit um das Emblem herum noch ein Rand in der Hintergrundfarbe entsteht#########

          <div id="Layer1" style="position:absolute; left:250px; top:0px; width:50px;  
          

          height:64px; z-index:2">
             <layer>
              <table width="50">
               <tr align="center" valign="Top">
                <td><img src="../Grafik/1px.gif" width="50" height="60">
                </td>
               </tr>
              </table>
             </layer>
          </div>

          Ist zwar vielleicht etwas aufwendig für eine Titelzeile, aber eine bessere Lösung für die dynamische Größenänderung ist mir nicht eingefallen.

          Deinen Vorschlag werde ich sofort mal ausprobieren. Wobei sich mir jetzt folgende Frage stellt. Angenommen die Lösungen mittels purem HTML bzw. HTML + Javascript erzeugen eine vergleichbare Codegröße. Was ist zu bevorzugen?
          Sicher Scripte sehen (sind?) eleganter (wenn sie Redundanzen verhindern), aber ist HTML letztendlich nicht sicherer?

          Grüße, Martin

        2. Hi Thomas,

          funktioniert leider nicht. Nach dem Laden sieht man immerhin noch zwei Ruler rechts/links des Emblems. Aber einmal die Fenstergröße verändert, bricht alles zusammen. Das ist dann wohl wieder der bekannte Resize-Bug.

          Gruß, Martin

          1. Hallo Martin!

            funktioniert leider nicht. Nach dem Laden sieht man immerhin noch zwei Ruler rechts/links des Emblems.

            »»

            ??
            Was meinst du mit 2 Ruler? Ich habe den Script mit anderen Bilder ausprobiert, da waren die Bilder Abstandslos nebeneinaner.

            »»Aber einmal die Fenstergröße verändert, bricht alles zusammen. Das ist dann wohl wieder der bekannte Resize-Bug.

            Enfach zum Script hinzufügen:
            ========cut==========
            /**
            * resize.js 0.3 970811
            * by gary smith
            * js component for "reloading page onResize"
            */

            if(!window.saveInnerWidth) {
              window.onresize = resize;
              window.saveInnerWidth = window.innerWidth;
              window.saveInnerHeight = window.innerHeight;
            }

            function resize() {
                if (saveInnerWidth < window.innerWidth
                    saveInnerWidth > window.innerWidth
                    saveInnerHeight > window.innerHeight
                    saveInnerHeight < window.innerHeight )
                {
                    window.history.go(0);
                }
            }
            ===========cut=============

            Hast du eine Lösung mit HTML gefunden, würde ich an deiner Stelle diese verwenden. HTML können alle Browser, Javascript nicht unbedingt.

            Grüße
            Thomas