andynail: umliegende Tabelle soll die Breite des iframes annehmen

hallo zusammen

um ein iframe liegt eine Tabelle. Ich passe die Größe des iframes an dessen Inhalt an. Dann wird ja auch die Größe der Tabelle automatisch an die Größe des iframes angepasst.

Jedoch wenn der Text in der Zelle über dem iframe größer ist, aber auch ein Zeilenumbruch möglich wäre, bleibt dieser weiterhin einzeilig und damit zu lang.

Und jetzt dachte ich das ich als Eigenschaft des iframe mit onrisize eine Funktion einrichte welche die Breite der Tabelle anpasst. Doch passiert nix im firefox.

Also wie erzwinge ich jetzt einen Zeilenumruch?

Danke gruß Andreas

  1. 'ǝɯɐu$ ıɥ

    um ein iframe liegt eine Tabelle. Ich passe die Größe des iframes an dessen Inhalt an. Dann wird ja auch die Größe der Tabelle automatisch an die Größe des iframes angepasst.

    Wenn du mir erklären würdest warum du einen iFrame in eine Tabelle packst, würde ich einen Schreikrampf bekommen? Ich bin mir sicher die moderne Medizin wird bald ein wirksames Medikament auf den Markt bringen (gegen den Drang iFrames und Tabellen zu Missbrauchen, nicht gegen Schreikrämpfe).

    Ernsthaft, bist du dir sicher das dein Vorgehen sinnvoll ist?

    ssnɹƃ
    ʍopɐɥs

    --
    I like children. If they're properly cooked.
    - W.C. Fields
    1. Und wer sitzt jetzt mit gesteigertem Blutdruck vor dem Bildschirm? Ich dachte es sei möglich meine Frage zu beantworten. Und weiter als das planlose vor der Seite sitzen schaffe ich hier das 259er mal wieder nicht.

      Gibt es eine Möglichkeit meine Frage beantwroten zu können ohne mich auf das Lehrbuch verweisen zu müssen? Umliegend dem iframe befinden sich sitationsgerecht Steuerelemente in der Mitte der Seite

      Danke gruß Andreas

      1. Hi,

        Gibt es eine Möglichkeit meine Frage beantwroten zu können ohne mich auf das Lehrbuch verweisen zu müssen?

        Ich kann dich auch gerne darauf verweisen: </hilfe/charta.htm#tipps-fuer-fragende>

        Du lieferst keinen Beispielcode, zeigst nicht, was du versucht hast - und zu deinem JavaScript-Versuch lieferst du noch die „schönste“ Problembeschreibung von allen, dass immer wieder gern gesehene „hat nicht gefunzt“.

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
        1. Hallo

          also noch einmal: In einer Tabelle sitzt ein Iframe:

          <table id="Bereich" border="0" cellspacing="0" align="center">  
          <tr ID="TRKennung" style="height:32px; display:none">  
          <td style="background-image:url(Pictures/hintergrund-g-250.gif); background-repeat:repeat-x; color:#000; text-align:center; font-size:18; vertical-align:middle;"><div ID="Kennung"></div></td>  
          </tr>  
          <tr id="FrameBereich">  
          <td style="padding:0">  
          <iframe id="Daten" name="Daten" src="Main.html?b=0&s=0&t=Main" frameborder="5" tabindex="-1" style="border:5; border-style:solid; border-color:#00ee00" onload="MenueUp()" onFocus="HideInfo()" onResize="DatenbereichAnpassen()"></iframe>  
          </td>  
          </tr>  
          </table>  
          
          

          In dem div Kennung wird vom iframe heraus die Inhalt-Kennung eingetragen. Ich passe jetzt die Größe des iframes an dessen Inhalt - ein div oder eine Tabelle mit der id Inhalt - an:

          var DatenHeight = top.frames['Daten'].document.getElementById('Inhalt').offsetHeight  
          var DatenWidth = top.frames['Daten'].document.getElementById('Inhalt').offsetWidth  
            
          top.document.getElementById("Daten").style.width = DatenWidth + "px"  
          top.document.getElementById("Daten").style.height = DatenHeight + "px"  
          
          

          Jetzt lautet die Kennung "Geschäfte und einkaufen" und der Text wird im firefox jedoch einzeilig geschrieben obwohl ja ein Zeilenumruch möglich wäre. Und ändere ich die Breite der Tabelle, dann steht das iframe 10px über die Tabellenzelle hinaus. Der Inhalt passt aber stets, er hört 5px vor der Tabellenbreite auf, so daß genügend Platz für das gesamte iframe ware. Und mit dieser Variante wurde der Text in der Kennung auch umgebrochen.

          Ist dies jetzt verständlicher?

          Danke gruß Andreas

          1. Hi,

            Jetzt lautet die Kennung "Geschäfte und einkaufen" und der Text wird im firefox jedoch einzeilig geschrieben obwohl ja ein Zeilenumruch möglich wäre.

            Wieso sehe ich von dem Text in deinem Beispiel gar nichts?

            In dem div Kennung wird vom iframe heraus die Inhalt-Kennung eingetragen.

            Was genau soll das bedeuten?

            Und ändere ich die Breite der Tabelle, dann steht das iframe 10px über die Tabellenzelle hinaus. Der Inhalt passt aber stets, er hört 5px vor der Tabellenbreite auf, so daß genügend Platz für das gesamte iframe ware. Und mit dieser Variante wurde der Text in der Kennung auch umgebrochen.

            Vielleicht willst du dich mal darum kümmern, die Angaben zum Rahmen des Iframes, die du auf 5px Breite gesetzt hast, und die zusammengenommen vielleicht grob geschätzt die exakten erwähnten 10px ergeben, zu eliminieren, wenn du ihren nach Box-Model vorgeschriebenen Effekt nicht haben willst?
            Oder, wenn du sie haben willst - die Breite des Iframes um eine entsprechende Anzahl Pixel zu verringern.
            Das wäre doch vielleicht mal eine gute Idee für den Anfang.

            MfG ChrisB

            --
            “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
            1. Hallo

              wenn ich die Breite der Tabelle ändere und das iframe auf 100% stelle, dann setzt nur der firefox das iframe 10px über die Tabellenbreite hinaus. Beim ie hingegen sitzt Inhalt und Rahmen passgenau auf der richtigen Breite. Ich kann ja nicht nachvollziehen wie das iframe 10px über die Tabelle hinausgehen kann.

              Und soeben sehe ich das ich den Text in das div schreibe. Es geht ja auch direkt in die Tabellenzelle und das änderte ich gerade dadurch das ich der Zelle die id Kennung gab. Doch am Ereignis ändert sich nix.

              Ich will halt vermeiden die Breite beiden Objekten vergeben zu müssen.

              Gruß Andreas

              1. Mahlzeit Andreas Nagel,

                wenn ich die Breite der Tabelle ändere und das iframe auf 100% stelle, dann setzt nur der firefox das iframe 10px über die Tabellenbreite hinaus. Beim ie hingegen sitzt Inhalt und Rahmen passgenau auf der richtigen Breite. Ich kann ja nicht nachvollziehen wie das iframe 10px über die Tabelle hinausgehen kann.

                Derartige Probleme hat man meistens, wenn der erzeugte HTML-Code nicht valide ist: überprüfe das also.

                Darüber hinaus gibt es "den IE" nicht mehr: zur Zeit sind drei verschiedene Versionen auf dem Markt (in unterschiedlicher und veränderlicher Verteilung). Bei welchem davon beobachtest Du die genannten Effekte?

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                1. Ich bitte um der Himmels Willen mehrfach um Entschuldigung:

                  Denn ich schaute mir noch einmal diesen Code an und es wurde das bestätigt wovon hier tatsächlich geschrieben wurde. Und dies wollte ich nicht glauben.

                  Daher noch ein weiteres Mal um Entschuldigung und sollte dies mehrfach wiederholen.

                  Ich ändere jetzt die Breite beider Objekte - dies wollte ich vermeiden können - und dies ohne weitere 10px mit dem Ergebnis, daß der iframe passgenau sitzt und der Titel zweizeilig geschrieben wird.

                  Also funktionierts jetzt und ich wünsche weiterhin viel Erfolg im Forum.

                  mfg.
                  Andreas Nagel

              2. Hi,

                wenn ich die Breite der Tabelle ändere und das iframe auf 100% stelle, dann setzt nur der firefox das iframe 10px über die Tabellenbreite hinaus.

                Auch 100% plus zwei mal 5px sind mehr als 100%.

                Beim ie hingegen sitzt Inhalt und Rahmen passgenau auf der richtigen Breite.

                Dann betreibst du ihn wohl im Quirks Mode - das solltest du lassen.

                Ich kann ja nicht nachvollziehen wie das iframe 10px über die Tabelle hinausgehen kann.

                Das Stichwort Box Model nannte ich dir schon - wenn du damit noch ebenso wenig anfangen kannst, wie der IE für lange Zeit, dann wird's mal Zeit, dass du dein Wissen auf den aktuellen Stand bringst.

                Ich will halt vermeiden die Breite beiden Objekten vergeben zu müssen.

                Warum? Du bist eh schon mit JavaScript am Layout am herumspielen - das kannst du dann auch gut noch für ein Element mehr machen.

                MfG ChrisB

                --
                “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
                1. Hallo

                  function BereichAnpassen()  
                  {	  
                  	var SiteHeight = top.document.body.clientHeight  
                  	var SiteWidth = top.document.body.clientWidth  
                  	var DatenHeight = top.frames['Daten'].document.getElementById('Inhalt').offsetHeight  
                  	var DatenWidth = top.frames['Daten'].document.getElementById('Inhalt').offsetWidth  
                    
                  if (SiteHeight != "" && SiteHeight != 0)  
                  {  
                  	if (SiteHeight - 65 - 60 - top.KennungHeight < DatenHeight + 10)  
                  	{  
                  		if (parent.document.getElementById('Titel').length > 0)  
                  		{  
                  		if (top.document.getElementsByName('DataCol')[1].style.display != "") top.document.getElementsByName('DataCol')[0].style.display = ""  
                  		top.showPunkt = ""  
                  		}  
                  		if (top.BIndex != 0) DatenWidth = DatenWidth + 20  
                  		DatenHeight = SiteHeight - 65 - 62 - top.KennungHeight  
                  	}  
                  	else  
                  	{  
                  		top.document.getElementsByName('DataCol')[0].style.display = "none"  
                  		top.showPunkt = "none"  
                  	}  
                  	if (DatenWidth + 10 < SiteWidth - top.document.getElementById("SideBar").offsetLeft - 125)  
                  	{  
                  	top.document.getElementById("Bereich").style.width = DatenWidth + "px"  
                  	}  
                  	else  
                  	{  
                  	top.document.getElementById("Bereich").style.width = SiteWidth - top.document.getElementById("SideBar").offsetLeft - 125 - 10 + "px"  
                  	}  
                  	top.document.getElementById("Daten").style.height = DatenHeight + "px"  
                  	top.document.getElementById("DatenBereich").style.marginTop = (top.document.getElementById("Bereich").offsetHeight / 2 * -1) - 26  
                  	top.document.getElementById('DialogBereich').style.marginTop = (DatenHeight - top.document.getElementById("Dialogbox").offsetHeight + 20) / 2  
                    
                  }  
                  }
                  

                  und das jetzt mit + 10px und ich denke das ohne dieser Rechnerei es auch nicht zum gewünschten Ergebnis kommt:

                  probiere es mit optischer Darstellung

                  1. Hallo zusammen

                    Bild wurde nicht hochgeladen. Wie kann ich es anders darstellen wenn nicht optisch?

                    firefox:

                    • 10 = 10px Abstand zum Inhalt. ohne + 10 = passgenau am Inhalt, 10px über die Zelle hinaus.

                    Internete Explorer:

                    • 10px passgenau zu Inhalt und passgenau zur Zellenbreite. Kein + 10px = Inhalt wird nicht passgenau dargestellt.

                    Ich hatte auch schon Menüs an den zeigenden Objekten auszurichten und musste dann dies mit einer Funktion ausführen, da i * 80 von firefox nicht passgenau dargestellt wurde. Und so musste ich Menue.style.left = Bereich.offsetWidth ausrichten.

                    Ergebnis = Ich habe nur Probleme mit dem firefox! Und das nervt!

                    Und da sich dies hier wieder das 260 Mal ins leere verlief, werde ich woanders mit Hoffnung um Hilfe bitten. Denn ich darf wohl hier nicht mehr auf Hilfe hoffen.

                    Gruß Andreas Nagel