MudGuard: Mozilla-Fehler?

Hi,

hab gerade mal etwas mit tbody und borders gespielt.
Um deutlicher zu sehen, was passiert, hab ich verschiedene Farben genommen (im Endeffekt werden alle Borders schwarz, aber dann sieht man den Effekt nicht mehr...)

Ok, der IE ignoriert die tbody-borders (wahrscheinlich ignoriert er die tbody komplett) wie ich fast erwartet hatte,
der Opera stellt es wie erwartet korrekt dar (ok, ich bin mir nicht sicher, ob die horizontale border farblich zum oberen oder unteren tbody passen müßte)
Aber das Ergebnis vom Mozilla (1.4a) hat mich doch etwas überrascht (hier der aufs wesentliche zusammengekürzte Screenshot, dabei ist auch die eine Zeile kaputtgegangen. Es geht mir hier NUR um die Rahmenfarben!):

<img src="http://temp.andreas-waechter.de/tbody.png" border="0" alt="">

Der Quelltext sieht so aus (ebenfalls aufs wesentliche gekürzt):
<table class="bordered">
<caption>Die Bestandteile meines Radls</caption>
<tbody style="border:3px solid red;">
<tr><th>Rahmen</th><td>Marke: unbekannt, 66er Stahlrahmen (CrMo4) mit zusätzlichem Mittelrohr</td></tr>

<tr><th>Bremse vorne</th><td>Magura HS 33</td></tr>
<tr><th>Bremse hinten</th><td>Magura HS 33</td></tr>

</tbody>
<tbody style="border:3px solid black;">
<tr><th>Reifen</th><td>Schwalbe Marathon/Continental Top Touring (je nachdem, was grade hergeht...)</td></tr>
[...]
</tbody>
</table>

Und hier die Seite: http://www.andreas-waechter.de/Fahrrad/Fahrrad.html

Sieht für mich nach einem Bug im Mozilla aus...

cu,
Andreas

--
Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
  1. Hallo Andreas,

    Der Mozilla scheint gar keine Rahmen für tbody zu unterstüzen.
    Wenn Du mal das border-collapse raus nimmst, siehst Du das auch.
    Allerdings scheint er die Rahmen für tbody bei border-collapse:collapse irgendwie mit einzubeziehen.

    Grüße

    Daniel

    1. Hi,

      Der Mozilla scheint gar keine Rahmen für tbody zu unterstüzen.
      Wenn Du mal das border-collapse raus nimmst, siehst Du das auch.

      Wenn er keine Rahmen für tbody unterstützen würde - woher kommen dann die bunten Rahmen?
      Die sind ja direkt in den tbody definiert...

      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
      http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
      1. Hallo,

        Die sind ja direkt in den tbody definiert...

        Mach mal Dein externes CSS raus und staune.
        Der Bug tritt nur im zusammenhang mit border-collapse:collapse auf.
        Ein Bug ist es aber trozdem. --> Such mal bei Bugzilla und melde das da, so du nicht fündig wirst.

        Grüße

        Daniel

        1. Hi,

          Der Bug tritt nur im zusammenhang mit border-collapse:collapse auf.

          Seh ich anders.
          Ohne das border-collapse tritt ein anderer Bug auf, nämlich daß die tbody-Borders nicht angezeigt werden.

          cu,
          Andreas

          --
          Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
          http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
          1. Hallo,

            Ohne das border-collapse tritt ein anderer Bug auf, nämlich daß die tbody-Borders nicht angezeigt werden.

            Nugut, ich habe halt vermutet, dass es gar nicht vorgesehen war, die border Eigenschaft bei tbody irgendwie zu berücksichtigen ;-)

            Grüße

            Daniel

            1. Hi!

              Nugut, ich habe halt vermutet, dass es gar nicht vorgesehen war, die border Eigenschaft bei tbody irgendwie zu berücksichtigen ;-)

              Wäre ein bisschen sinnlos, schliesslich ist tbody dazu gedacht Tabellenzeilen zu gruppiren. Also ist es sinnvoll für diese Gruppierungen auch eine optische Kennzeichnung zu ermöglichen!!!

              Allerdings ist der einzige Browser, der eine solche Gestalltung von tbody tatsächlich implementiert hat, Amaya zu sein. IE6,Mozilla1.2.1,Konqueror3.1.1 und Opera7 können es nicht, Amaya7 kann es. Amaya ist auch der einzige Browser der tr formatiert.

              Gruß Herbalizer

              --
              SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
              sh:( fo:) ch:? rl:( br:> n4:& ie:% mo:} va:} de:] zu:) fl:{ ss:) ls:& js:|
              1. Hallo,

                Wäre ein bisschen sinnlos, schliesslich ist tbody dazu gedacht Tabellenzeilen zu gruppiren. Also ist es sinnvoll für diese Gruppierungen auch eine optische Kennzeichnung zu ermöglichen!!!

                Das ist auch möglich.
                Nur border/margin/padding kann man nicht angeben. Hintergrundfarbe o.ä. durchaus.

                Grüße

                Daniel

  2. hi

    Sieht für mich nach einem Bug im Mozilla aus...

    für mich auch

    gruß
              bjb

  3. Hi,

    hab gerade mal etwas mit tbody und borders gespielt.

    Nochwas, was mir in dem Zusammenhang aufgefallen ist:

    Mozilla ändert selbständig die Dokumentstruktur.

    Er fügt um Tabellenzeilen, die nicht bereits in thead, tbody, tfoot stehen, grundsätzlich ein tbody ein
    (plötzlich hatten Tabellen, bei denen ICH kein tbody angegeben hatte, eine border wie ich sie für tbody eingestellt hatte)

    Ok, bei HTML 4.01 ist das ja auch ok:

    <!ELEMENT TABLE - -
         (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
    <!ELEMENT TBODY    O O (TR)+           -- table body -->

    Es muß dort mindestens einen tbody geben (dessen tags sind aber optional), ok, Mozillla fügt die "unsichtbaren" tags sichtbar ein (sieht man auch in der Quelltextansicht...).

    Aber bei XHTML 1.0 sieht das etwas anders aus:

    <!ELEMENT table
         (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>

    Hier sind explizit tr ohne tbody erlaubt.
    Bei XHTML ist das Einfügen von tbody daher eine echte Strukturänderung - und das sollte m.E. nicht gemacht werden...

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. Hallo, Andreas,

      Bei XHTML ist das Einfügen von tbody daher eine echte Strukturänderung - und das sollte m.E. nicht gemacht werden...

      So wie ich http://bugzilla.mozilla.org/show_bug.cgi?id=30378#c59 ff. verstehe, wird XHTML als text/html (Kompatibilitätsrichtlinien) diesbezüglich wie HTML 4 behandelt. Mit XHTML als application/xhtml+xml oder anderen einem XML-Datentyp sollte die Strukturänderung nicht auftreten.

      Grüße,
      Mathias

    2. Hallo,

      Es muß dort mindestens einen tbody geben (dessen tags sind aber optional), ok, Mozillla fügt die "unsichtbaren" tags sichtbar ein (sieht man auch in der Quelltextansicht...).

      Nein, in der Quelltextansicht sieht man das nicht. Ich würde mal nachgucken, ob da bei Dir nicht wirklich ein tbody im Quelltext steht.

      Oder meinst du, dass Mozilla aus
      <table>
      <tr></tr>
      <tr></tr>
      <tbody>
      <tr></tr>
      <tr></tr>
      </tbody>
      </table>

      <table>
      <tbody>
      <tr></tr>
      <tr></tr>
      </tbody>
      <tbody>
      <tr></tr>
      <tr></tr>
      </tbody>
      </table>

      macht?

      Das habe ich zwar nicht überprüft, wäre aber wohl nur eine Fehlerkorrektur:
      <!ELEMENT table
           (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>

      (tbody+|tr+) ist etwas anderes als (tbody|tr)+

      Grüße

      Daniel

      1. Hi,

        Nein, in der Quelltextansicht sieht man das nicht. Ich würde mal nachgucken, ob da bei Dir nicht wirklich ein tbody im Quelltext steht.

        Ich habe bisher genau bei einer einzigen Tabelle (die, die ich gestern hier vorstellte) tbody tatsächlich selbst hingeschrieben.

        Aber wann immer ich Quelltext im Mozilla angucke, hat die Tabelle ein tbody-Element, egal auf welcher meiner Seiten.
        Und die sind alle XHTML, und alle zeigten gestern die Border, nachdem ich tbody eine border verpaßt hatte...

        Oder meinst du, dass Mozilla aus
        <table>
        <tr></tr>
        <tr></tr>
        <tbody>
        <tr></tr>
        <tr></tr>
        </tbody>
        </table>

        nein. Das meine ich nicht.
        Er macht aus

        <table>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        </table>

        fehlerhafterweise

        <table>
        <tbody>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        </tbody>
        </table>

        <!ELEMENT table
             (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
        (tbody+|tr+) ist etwas anderes als (tbody|tr)+

        ich weiß, daß das ein Unterschied ist.

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
        1. Hallo,

          Aber wann immer ich Quelltext im Mozilla angucke, hat die Tabelle ein tbody-Element, egal auf welcher meiner Seiten.
          Und die sind alle XHTML, und alle zeigten gestern die Border, nachdem ich tbody eine border verpaßt hatte...

          Bei meinem neusten Mozilla sehe ich in der Quelltextansicht auch keine Änderungen, dafür aber, wenn ich den DOM-Parsebaum ausgebe (http://home.t-online.de/home/dj5nu/js-dom-nodelisting.html).

          Wenn ich das Script auf folgendes Markup anwende:

          <table><tr><td>bla</td></tr></table>

          Ist die Ausgabe gekürzt wie folgt:

          • TABLE
              - TBODY
                - TR
                  - TD
                    - #text

          Egal ob HTML 4.01 oder XHTML 1.x als text/html. firstChild.nodeName des table-Knotens ist also tbody.

          Zwar wäre Daniels Beispiel invalides XHTML und deshalb liegt die Vermutung der Fehlerkorrektur nahe, aber hier wird wie gesagt XHTML als text/html genauso wie HTML behandelt, und das hat nichts mit Fehlerkorrektur zu tun. Bei XHTML als application/xhtml+xml findet natürlich keine Ergänzung von vorhandenen, aber unsichtbaren Elementen statt.

          Grüße,
          Mathias

          1. Hi,

            Bei meinem neusten Mozilla sehe ich in der Quelltextansicht auch keine Änderungen, dafür aber, wenn ich den DOM-Parsebaum ausgebe

            Stimmt, in der "normalen" Quelltextansicht baut er es nicht ein.
            Ich selektier normalerweise den mich interessierenden Teil und mach dann "View Selection Source" - und da sind die nicht-vorhandenen tbody drin.
            Und eine Formatierung von tbody wirkt sich auf alle Tabellen aus...

            cu,
            Andreas

            --
            Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
            http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/