neuling: attribute auslesen

Hallo,

ich habe mal wieder ein problem mit dem ie.
auf einer seite habe ich zwei tabellen die eine feste breite und eine dynamische höhe haben, je nach eintragslänge.
damit die zweite tabelle unter der ersten kommt, möchte ich die höhe der ersten tabelle auslesen um den wert "top" der zweiten tabelle setzten zu können.
es funktioniert mal wieder alles im ff und im opera. doch der ie kann keine höhe auslesen die nicht von vornherein festgelegt ist. beim auslesen der höhe kommt "auto" und nicht die aktuelle höhenangabe. wie kann ich auch im ie an die höhe der ersten tabelle gelangen?

der neuling

  1. Hallo,

    damit die zweite tabelle unter der ersten kommt, möchte ich die höhe der ersten tabelle auslesen um den wert "top" der zweiten tabelle setzten zu können.

    Wieso nimmst du nicht position:static und lässt die Elemente normal untereinander fließen? ;)

    es funktioniert mal wieder alles im ff und im opera. doch der ie kann keine höhe auslesen die nicht von vornherein festgelegt ist.

    Das können andere Browser auch nicht über .style.height, sondern nur über getComputedStyle.

    beim auslesen der höhe kommt "auto" und nicht die aktuelle höhenangabe. wie kann ich auch im ie an die höhe der ersten tabelle gelangen?

    http://de.selfhtml.org/javascript/objekte/all.htm#offset_height@title=offsetHeight

    Mathias

    1. Hi Mathias,

      also ich hab die Attribute mit getCS() ausgelesen und wie gesagt der ie bringt statt einer "zahl_px" eben "auto", wobei der ff und opera eine zahl_px liefern.

      trotzdem danke und ich werds mal mit position:static versuchen.

      neuling

      1. Hallo,

        also ich hab die Attribute mit getCS() ausgelesen und wie gesagt der ie bringt statt einer "zahl_px" eben "auto", wobei der ff und opera eine zahl_px liefern.

        Und wie sieht deine getCS aus? Unterstützt sie den IE?

        Eigentlich reicht offsetHeight für alle Browser aus.

        Mathias

        1. Hallo,

          sorry dass ich mich erst jetzt melde.

          Und wie sieht deine getCS aus? Unterstützt sie den IE?

          Sollte auch für den ie geeignet sein:

          function getCS(objid,prop) {
                  var obj, propval;
                  if (document.documentElement && document.defaultView) {//--> funktioniert nur nicht beim IE
                    obj=document.getElementById(objid);
                    propval=document.defaultView.getComputedStyle(obj,"").getPropertyValue(prop);
                    return propval;
                  }
                  else {//--> funktioniert nur für den IE
                     if(document.documentElement.currentStyle) {
                       obj=document.getElementById(objid);
                        propval=obj.currentStyle[prop];
                       return propval;
                    }   else alert("Ihr Browser unterstützt diese W3C-Dom Methode nicht und auch keine IE-Technik");
              }
          }

          Eigentlich reicht offsetHeight für alle Browser aus.

          Dann werd ich das auch mal in betracht ziehen. mein groll gegen den ie wächst und wächst...

          neuling

          1. Hallo neuling,

            function getCS(objid,prop) {
                    var obj, propval;
                    if (document.documentElement && document.defaultView) {//--> funktioniert nur nicht beim IE
                      obj=document.getElementById(objid);
                      propval=document.defaultView.getComputedStyle(obj,"").getPropertyValue(prop);
                      return propval;
                    }
                    else {//--> funktioniert nur für den IE
                       if(document.documentElement.currentStyle) {
                         obj=document.getElementById(objid);
                          propval=obj.currentStyle[prop];
                         return propval;
                      }   else alert("Ihr Browser unterstützt diese W3C-Dom Methode nicht und auch keine IE-Technik");
                }
            }

            Das sollte eher so aussehen:

            function getCS(objid,prop) {  
                    var obj, propval;  
                    if (document.documentElement && document.defaultView) {//--> funktioniert nur nicht beim IE  
                      obj=document.getElementById(objid);  
                      propval=document.defaultView.getComputedStyle(obj,"").getPropertyValue(prop);  
                      return propval;  
                    }  
                    else if(document.documentElement.currentStyle) {//--> funktioniert nur für den IE  
                      obj=document.getElementById(objid);  
                      propval=obj.currentStyle[prop];  
                      return propval;  
                    }  
                    else alert("Ihr Browser unterstützt diese W3C-Dom Methode nicht und auch keine IE-Technik");  
                }  
            }
            

            return propval; könnte auch noch zusammengefasst werden.

            Erinnert mich von der Namensgebung her sowie inhaltlich auch sehr an dies und das.

            Grüße,
            Thomas