Marco: <td> Breitenangabe FireFox

Hallo,

ich habe mittels CSS in meinen Tabellenfeldern <td></td> pixelgenaue Breiten festgelegt. Der Tabelle wurde die genaue Summe aller Spalten als Pixelbreite gegeben (<table style="width:358px;">).
In IE 6/7 sowie Opera ist die Spaltenbreite jeweils wie gewünscht, nur der FireFox verschiebt diese.

Gibt es eine generelle Regel, die ich beachten muss?
Woran kann das liegen?

  1. Hello out there!

    In IE 6/7 sowie Opera ist die Spaltenbreite jeweils wie gewünscht,

    Im Quirksmodus?

    Gibt es eine generelle Regel, die ich beachten muss?

    Ja, das Box-Modell . [CSS2]

    See ya up the road,
    Gunnar

    --
    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
  2. Hi,

    [...] sowie Opera ist die Spaltenbreite jeweils wie gewünscht, nur der FireFox verschiebt diese.

    Dann solltest du schnell Opera 9 installieren, der macht's mittlerweile auch im Quirksmode wieder richtig.

    Gibt es eine generelle Regel, die ich beachten muss?

    Ja, dass margin's, padding's und Border's addiert werden. Siehe Box Modell

    Woran kann das liegen?

    Dass der IE sowie der Opera 7-8 Sch**** sind.

    Einen schönen Donnerstag noch!

    --
    Experten raten von der Verwendung des Internet Explorers ab!
    Diese Programme braucht man, um Webseiten zu bauen!
    Selfcode: ie:{ fl:| br:> va:| ls:# fo:| rl:( n4:# ss:{ de:> js:| ch:? mo:) zu:}
    1. Woran kann das liegen?

      Dass der IE sowie der Opera 7-8 Sch**** sind.

      Einen schönen Donnerstag noch!

      Danke für die sehr professionelle Antwort.
      Ich habe Opera 9 bereits installiert. Und wie gesagt tritt das Problem im Fire Fox auf. Wenn die Sache im Opera 9 sowie im Internet Explorer richtig funktioniert, und zwar so wie kodiert und somit wie erwünscht, dann kann es ja mit dem Argument "IE und Opera 7-8 sind Scheiße" nicht getan sein, oder?

      Was ich zu meinem Verschulden vergessen habe zu erwähnen: Ich erstelle die Felder mittels JavaScript zur Laufzeit und setze das width-Attribut dynamisch. Könnte es daran liegen?

      tdhandle.style.width = columns[i].columnWidth+"px";

      Zum Box-Modell-Problem:
      Ich dachte eigentlich, ab IE 6 zumindest müsste dieses Problem mit folgender Deklaration behoben sein:
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

      Dankeschön für eure Zeit.

      1. hi,

        Ich erstelle die Felder mittels JavaScript zur Laufzeit und setze das width-Attribut dynamisch. Könnte es daran liegen?

        tdhandle.style.width = columns[i].columnWidth+"px";

        Hast du die Werte überprüfet?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Ja, die Werte stimmen.
          Einmal 204 und einmal 154. Macht 358 - so breit ist meine Tabelle.

          Dennoch ist die linke Spalte um gut 50 Pixel zu groß.

          1. hi,

            Ja, die Werte stimmen.
            Einmal 204 und einmal 154. Macht 358 - so breit ist meine Tabelle.

            Dennoch ist die linke Spalte um gut 50 Pixel zu groß.

            Hat sie ggf. übergroßen Inhalt, der diese Überbreite erzwingt?

            table-layout:fixed probiert?

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. Nein, das ist ja das Schlimme. Der Inhalt besteht aus 5 Buchstaben und füllt das Feld nicht im Ansatz aus.
              table-layout:fixed brachte leider keine Veränderung.

              Muss irgendwie nebst width-Attribut noch ein anderes Attribut gesetzt werden? position oder height o.Ä.?
              Langsam weiß ich nicht mehr weiter...

            2. DAS GIBTS NICHT!

              Wenn ich <tr><td></td></tr> nicht an <tbody> sondern direkt an <table> hänge, funktioniert es im FireFox! Dafür aber im IE nicht mehr. Wenn ich die Zeile an <tbody> dranhänge, kommts wie bisher zu dem Darstellungsfehler im FireFox! Kann das sein? Und wieso?
              Muss ich jetzt per Browserweiche entscheiden ob ich an <tbody> oder <table> anknüpf?

      2. Hi,

        Dass der IE sowie der Opera 7-8 Sch**** sind.

        Danke für die sehr professionelle Antwort.

        Bitte sehr ;-)

        Ich habe Opera 9 bereits installiert. Und wie gesagt tritt das Problem im Fire Fox auf.

        Ja, dachte halt, dass die seite im Quirk-Mode dargestellt wird.

        Wenn die Sache im Opera 9 sowie im Internet Explorer richtig funktioniert, und zwar so wie kodiert und somit wie erwünscht, dann kann es ja mit dem Argument "IE und Opera 7-8 sind Scheiße" nicht getan sein, oder?

        dann allerdings nicht, sorry.

        Was ich zu meinem Verschulden vergessen habe zu erwähnen: Ich erstelle die Felder mittels JavaScript zur Laufzeit und setze das width-Attribut dynamisch. Könnte es daran liegen?

        tdhandle.style.width = columns[i].columnWidth+"px";

        Was sagt eigentlich die Javascript-Konsole des Firefox? (Extras > JavaScript-Konsole) -> vorher evtl. vorhandene Einträge löschen und die Seite dann neu laden.

        Zum Box-Modell-Problem:
        Ich dachte eigentlich, ab IE 6 zumindest müsste dieses Problem mit folgender Deklaration behoben sein:
        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

        Ja, allerdings. Dachte halt, dass deine Seite, (die du ja leider nicht hier zeigst) keine oder eine nicht vollständige Dokumenttyp-Deklaration hat.

        Einen schönen Donnerstag noch!

        --
        Experten raten von der Verwendung des Internet Explorers ab!
        Diese Programme braucht man, um Webseiten zu bauen!
        Selfcode: ie:{ fl:| br:> va:| ls:# fo:| rl:( n4:# ss:{ de:> js:| ch:? mo:) zu:}
        1. Leider meldet mir die JavaScript-Konsole garnichts. Auch im DOM-Inspector sieht soweit alles ordentlich aus. Hier auch der Erstellungscode für die Tabelle und Felder:

          // controlHandle.offsetWidth ist die Breite des Elternelements.
          // Ich habe es auch mit width="100%" versucht, hat jedoch den selben
          // Effekt. Die Breite der Tabelle ist auch richtig.

          tableHandle = document.createElement("table");
          tableHandle.style.width=controlHandle.offsetWidth+"px";
          controlHandle.appendChild(tableHandle);

          tableBodyHandle = document.createElement("tbody");
          tableHandle.appendChild(tableBodyHandle);

          // (spätere Methode:)
          var trhandle = document.createElement("tr");
          tableBodyHandle.appendChild(trhandle);

          var tdhandle = document.createElement("td");
          tdhandle.style.width = columns[i].columnWidth+"px";
          tdhandle.className="mygrid";
          tdhandle.innerHTML = arr[i];
          trhandle.appendChild(tdhandle);

          Dankeschön nochmals!

      3. Hello out there!

        Und wie gesagt tritt das Problem im Fire Fox auf.

        Ein gutes Indiz dafür, dass das Problem im Quellcode zu suchen ist.

        Wenn die Sache im Opera 9 sowie im Internet Explorer richtig funktioniert, und zwar so wie kodiert und somit wie erwünscht,

        Zwischen „so wie erwünscht“ und „so wie kodiert“ liegen oft Welten.

        Was ich zu meinem Verschulden vergessen habe zu erwähnen: Ich erstelle die Felder mittels JavaScript zur Laufzeit und setze das width-Attribut dynamisch. Könnte es daran liegen?

        Wenn du es richtig tust, nein.

        Zum Box-Modell-Problem:
        Ich dachte eigentlich, ab IE 6 zumindest müsste dieses Problem mit folgender Deklaration behoben sein:
        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

        Ja, damit schaltet auch der IE in den standards compliant mode; eine Box ist also entsprechend den Werten von padding und border _breiter_ als die mittels 'width' angegebene Breite des Inhaltsbereichs.

        See ya up the road,
        Gunnar

        --
        “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
        1. » Wenn du es richtig tust, nein.
          » Zwischen „so wie erwünscht“ und „so wie kodiert“ liegen oft Welten.

          Ohje die hilfreichen, leeren Floskeln...

          1. Hello out there!

            Ohje die hilfreichen, leeren Floskeln...

            Du darfst gerne von deinem Gehirn Gebrauch machen. Dann erfüllt sich so manche Floskel mit Leben ...

            See ya up the road,
            Gunnar

            --
            “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
          2. Wenn deine Westerngitarre absolute nicht mehr klingt, sie sich ständig verstimmt, du den Hals neu ausgerichtet hast, einen Saitenwechsel auch nichts gebracht hat und du die zu erwartenden Ursachen alle versucht hast zu beheben, und sie immernoch total falsch klingt, du zu einem Spezialisten in letzter Hoffnung gehst, ein Tag vor deinem nächsten Konzert, und der sagt dir dann:
            "Tja, zwischen dem, wie sie klingen soll und dem wie sie klingt, da liegen oftmals Welten."

            Auch wenn du ihm sehr dankbar für seine freiwillig geopferte Zeit bist - inwiefern empfindest du seine Antwort als brauchbar? Dass etwas nicht stimmt, das hast du an diesem Punkt als - da du live auftretest schätze ich doch - guter Gitarist schon selbst herausgefunden.

            1. Hello out there!

              Wenn deine Westerngitarre absolute nicht mehr klingt, […] du zu einem Spezialisten in letzter Hoffnung gehst,

              ... das nehme ich meine Klampfe dorthin mit.

              Auf dich angewandt: Wenn du Fragen zu deinem Quelltext hast, solltest du diesen auch zeigen (Links zur fraglichen Seite). Ist mir unklar, warum du das nicht schon längst getan hast, wo du doch die Tips für Fragende so gut kennst, dass du auf Hinweise darauf rotzfrech mit den Tips für Antwortende konterst.

              und der sagt dir dann:
              "Tja, zwischen dem, wie sie klingen soll und dem wie sie klingt, da liegen oftmals Welten."

              Ich hatte dir etwas mehr gesagt. Du bist den mehrfach gegebenen Hinweisen zum Box-Modell nachgegangen? Wenn nein – tu das. Wenn ja – was ist dein Problem?

              See ya up the road,
              Gunnar

              --
              “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)