martin: Warum versteht Mozilla kein height bei Tabellen?

Moin,
es geht bei mir immer noch um die Ausrichtung eines Elements unten rechts. Da mit div und css wohl keine zufriedenstellende Positionierung möglich ist, bin ich wieder auf eine Tabelle umgestiegen.
Kann mir bitte jemand erklären, warum diese Variante gerade im Mozilla nicht funktioniert? Internet Explorer und Opera tun jedenfalls, was sie tun sollen.

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <style type="text/css">
    .main {  height:100%; width:100%; overflow:visible;}
    .rot  { background-color:#FF0000; width:16px; min-width:16px;                          height:16px}
    .nichts  { border-style:none; width:16px; height:16px;}
  </style>
</head>
<body>
<table class="main">
  <tr>
    <td style="width:1px; height:93.75%;">
      <img src="" style="border-style:none; width:10px; height:93.75%" alt=" "/></td><td style="vertical-align:top;">
     text
    </td></tr>
  <tr>
    <td></td><td style="text-align:right; height:16px;">
      <a href="weiter" class="rot"><img src="" class="nichts" alt=" "/></a>
    </td></tr>
</table>
</body>
</html>

Mit welcher W3C-konformen Variante stellt Mozilla die Tabelle richtig dar?
Danke für Eure Hilfe,
Martin

  1. Hallo,

    Prozentangaben beziehen sich (bei korrekter Interpretation des Codes)
    immer auf das übergeordnete Element.

    Gib html und body die Höhe 100% und es sollte funktionieren:

    html, body {
      height:100%;
    }

    Viele Grüße
    Carsten

    1. Moin,
      danke für den Hinweis, aber kannst Du mir auch sagen, warum ich body:98%; setzen muß, damit Mozilla keine Scrollbalken anzeigt? Für den Opera brauche ich sogar 97% und dem Internet Explorer sind die Angaben egal...

      Martin

      1. hi

        danke für den Hinweis, aber kannst Du mir auch sagen, warum ich body:98%; setzen muß, damit Mozilla keine Scrollbalken anzeigt? Für den Opera brauche ich sogar 97% und dem Internet Explorer sind die Angaben egal...

        <body> hat ein kleines margin, was hier mitzählt. body{margin:0;} und weg isses. Bei Opera war man so schlau das Ding zum padding zu erklären, also insgesamt:
        body{margin:0; padding:0;}

        Grüße aus Bleckede

        Kai

        1. Moin,

          body{margin:0; padding:0;}

          Danke, vielleicht kannst Du mir aber noch sagen, ob der Mozilla oder der Opera recht hat- oder hat das W3C vergessen, das zu normen?

          Warum müssen sich denn selbst die relativ standardnahen Browser so unterschiedlich verhalten? Jetzt hat das Quadrat im Konqueror einen Abstand von 77 statt ~16 vom unteren Bildschirmrand...

          wundert sich
          Martin

          1. hi

            Danke, vielleicht kannst Du mir aber noch sagen, ob der Mozilla oder der Opera recht hat- oder hat das W3C vergessen, das zu normen?

            beide - HTML gibt nur eine Struktur vor, wie man damit umgeht, ist egal. Pech ist hier nur für Opera, das alle anderen das Ding als margin ansehen, auch wenn padding logischer wäre (der Hintergrund ist da ja auch)

            Grüße aus Bleckede

            Kai

  2. Oh Mann! Ist doch einfach!

    Mach eine Spalte mit Tabellenzellen, deren padding Du auf null setzt, dahinein eine unsichtbare (durchsichtige) Grafik 1*1 Pixel groß, mittels der Größenangabe width und height diese auf 1px und die richtige Höhe gezerrt, was ja keiner sieht und Deine Tabelle hat die richtige Höhe.

    fastix