NiX: padding auf <table> im M$ IE

Guten Tag.

Follgendes CSS funktioniert nur im Mozilla:

border: 2px dotted #000073;
background-color: #CEDFEF;
color: #000073;
PADDING-LEFT: 5px;
font-family: arial,helvetica,sans-serif;
font-size: 14px;
color: #000073;
padding-top: 5px;
padding-bottom: 5px;
padding-left: 15px;
padding-right: 15px;

<table class="sieheoben">....</table>

Im Internet Explorer werden die 4 Padding-Befehle nicht ausgeführt (Das andere schon).
Wieso?
Wie mache ich das?

Grüsse, NiX.

  1. Hallo,

    Follgendes CSS funktioniert nur im Mozilla:

    padding-top: 5px;
    padding-bottom: 5px;
    padding-left: 15px;
    padding-right: 15px;

    Diese vier Deklarationen kannst du übrigens in einer zusammenfassen:
    padding:5px 15px;
    http://edition-w3c.de/TR/1998/REC-CSS2-19980512/kap08.html#padding|

    Im Internet Explorer werden die 4 Padding-Befehle nicht ausgeführt (Das andere schon).
    Wieso?

    Der MSIE interpretiert padding für das table-Element offenbar nicht (Opera auch nicht, wahrscheinlich ist es nicht vorgesehen). Den Zelleninnenabstand (analog zum HTML-Attribut »cellpadding«) solltest du über die Eigenschaft padding für die Zellenelemente (td- und th-Elemente) vergeben, nicht für das table-Element. Beispielsweise:

    .bestimmtetabellenklasse td {padding:10px;}

    <table class="bestimmtetabellenklasse">
    <tr>
    <td>Zelle mit 10px padding</td>
    <td>Zelle mit 10px padding</td>
    </tr>
    </table>

    Bei mehreren Zeilen und Spalten musst du dein Konzept natürlich überdenken, da das padding auf jede Zelle einzeln angewendet wird und nicht wie das padding von table lediglich an den Tabellengrenzen oben, rechts, unten und links. (Indem du den Zellen border zuweist, kannst du die Zellengrenzen sichtbar machen.)

    </archiv/2003/6/48849/#m266444>

    (margin und padding auf tbody oder tr wirkt im MSIE 6 anscheinend nie, egal in welchem Rendermodus.)

    Grüße,
    Mathias

    1. Hi,

      Im Internet Explorer werden die 4 Padding-Befehle nicht ausgeführt (Das andere schon).
      Wieso?
      Der MSIE interpretiert padding für das table-Element offenbar nicht (Opera auch nicht, wahrscheinlich ist es nicht vorgesehen).

      Die Definition sieht (verkürzt) so aus:

      'padding-top', 'padding-right', 'padding-bottom', 'padding-left'
          Applies to:   all elements

      'padding'
          Applies to:   all elements

      Also gilt padding[-(top|right|bottom|left)] für alle Elemente, also auch für Tabellen.

      Deine Vermutung, daß es nicht vorgesehen sei, padding für table-Elemente zu verwenden, ist also widerlegt.

      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. Andreas,

        Deine Vermutung, daß es nicht vorgesehen sei, padding für table-Elemente zu verwenden, ist also widerlegt.

        Hm, wenn also auch margin auf th/td anwendbar ist (gilt auch für alle Elemente), ist border-spacing gewissermaßen überflüssig, denn es lässt sich theoretisch mit margins lösen...
        Ob wohl border-collapse:collapse den margins den Garaus macht? Die Formel in CSS2.1 Kapitel 17.6.2 sieht bspw. gar kein margin vor, also muss es wohl so sein... Aber müßig, zu spekulieren, Mozilla/Gecko ignoriert margin und padding für thead/tbody und tr sowie margin für th/td sowieso... Trotz der Tatsache, dass es formal erlaubt ist, ist es vermutlich nicht wirklich vorgesehen, dass die genannten Eigenschaften für die tabelleninternen Elemente vergeben werden. (So stark interessiert es mich auch nicht, dass ich mich einarbeiten will...)

        Grüße,
        Mathias

        --
        »In anderen Newsgroups werden Pseudonyme akzeptiert, es handelt sich dabei meist um Gruppen, in denen sensible Themen (z.B. psychische oder peinliche Erkrankungen o.ä.) behandelt werden.«
        1. Hi,

          Hm, wenn also auch margin auf th/td anwendbar ist (gilt auch für alle Elemente), ist border-spacing gewissermaßen überflüssig, denn es lässt sich theoretisch mit margins lösen...
          Ob wohl border-collapse:collapse den margins den Garaus macht? Die Formel in CSS2.1 Kapitel 17.6.2 sieht bspw. gar kein margin vor, also muss es wohl so sein... Aber müßig, zu spekulieren, Mozilla/Gecko ignoriert margin und padding für thead/tbody und tr sowie margin für th/td sowieso... Trotz der Tatsache, dass es formal erlaubt ist, ist es vermutlich nicht wirklich vorgesehen, dass die genannten Eigenschaften für die tabelleninternen Elemente vergeben werden. (So stark interessiert es mich auch nicht, dass ich mich einarbeiten will...)

          In CSS 2, Abschnitt 17.5 (http://localhost/Doku/CSS2/tables.html#q7):
          Like other elements of the document language, internal table elements generate rectangular boxes with content, padding, and borders. They do not have margins, however.

          In den Errata (http://localhost/Doku/CSS2/CSS2-errata.html#x27) wird das geändert auf:
          Like other elements of the document language, internal table elements generate rectangular boxes with content and borders. Cells have padding as well. Internal table elements do not have margins.

          Demnach haben td + th + tr + tbody + tfoot + thead kein margin.
          Man beachte: caption gilt dabei NICHT als internal table element.

          Man beachte auch: table ist auch kein internal table element, die Einschränkung, daß padding nicht gilt, trifft also nicht das table-Element, sondern nur seine Kinder (außer caption).

          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/