Constantin Kiesling: margin:auto;

Hallo liebe Leute!

Ich habe eine Frage: Man hat mir gesagt, die beste Möglichkeit um mit CSS eine tabelle zu zentrieren wäre margin:auto; im <table>-Tag zu verwenden. (Und nicht um die Tabelle einen <div> zu schlingen und mit text-align:center auszustatten, weil das nur im IE funktioniert -> nur TEXTzentrierung und nicht Tabellen usw.)

Aber: Wieso gibt es auf SELFHTML keine Erläuterung zu margin:auto;?? Das finde ich komisch... Kann mir das jemand erklären?

lG, Consti

  1. hi

    Aber: Wieso gibt es auf SELFHTML keine Erläuterung zu margin:auto;?? Das finde ich komisch... Kann mir das jemand erklären?

    SelfHTML kennt viele dieser CSS-Spezialitäten leider nicht, oftmals, weil einfach die Browser sich in den letzten 12 Monaten so massiv weiterentwickelt haben, dass ein Feature zu dem es heute noch heißt "kennt keiner" morgen schon Standart [absichtlich mit t] sein kann!

    Grüße aus Bleckede

    Kai

    1. Hallo!

      Danke zuerstmal für all eure Antworten :) Jetzt bin ich mir mal genau im Klaren über margin:auto bzw. margin-left:auto;margin-right:auto; - THX!

      SelfHTML kennt viele dieser CSS-Spezialitäten leider nicht, oftmals, weil einfach die Browser sich in den letzten 12 Monaten so massiv weiterentwickelt haben, dass ein Feature zu dem es heute noch heißt "kennt keiner" morgen schon Standart [absichtlich mit t] sein kann!

      Ok... verstehe ich :) Was ich allerdings nicht verstehe ist das mit dem 't' (?).

      Schöne Grüße aus Graz,
      Consti

      1. hi

        Ok... verstehe ich :) Was ich allerdings nicht verstehe ist das mit dem 't' (?).

        http://forum.de.selfhtml.org/?m=69041&t=12416

        Grüße aus Bleckede

        Kai

  2. Ich habe eine Frage: Man hat mir gesagt, die beste Möglichkeit um mit CSS eine tabelle zu zentrieren wäre margin:auto; im <table>-Tag zu verwenden.

    Das ist nicht ganz richtig, richtiger wäre

    table { margin-left: auto; margin-right: auto }

    zu definieren, ansonsten definierst du auch

    table { margin-top: auto; margin-bottom: auto }

    was du eventuell gar nicht willst.

    (Und nicht um die Tabelle einen <div> zu schlingen und mit text-align:center auszustatten, weil das nur im IE funktioniert -> nur TEXTzentrierung und nicht Tabellen usw.)

    Das funktioniert überhaupt nicht, alte Versionen des Internet Explorers enthielten allerdings einen Fehler, der zu dem Ergebnis führt.

    Aber: Wieso gibt es auf SELFHTML keine Erläuterung zu margin:auto;?? Das finde ich komisch... Kann mir das jemand erklären?

    Das ist ein Fehler in SelfHTML, es sagt nur, dass "numerische Angaben" erlaubt sind (was sowieso schon mal schlecht ist, es sind Längenangaben erlaubt, numerische Angaben sind für mich "1", "1.3" oder "-4.2", dort fehlt aber überall eine Einheit, i.e., SelfHTML ist unnötiger Weise verwirrend).

    1. hi

      Das ist nicht ganz richtig, richtiger wäre

      table { margin-left: auto; margin-right: auto }

      zu definieren, ansonsten definierst du auch

      table { margin-top: auto; margin-bottom: auto }

      was du eventuell gar nicht willst.

      nop, die CSS-Spezifikation sagt ausdrücklich, dass margin:auto; das gleiche ist wie margin-left:auto; margin-right:auto; (was M$ sicherlich noch lange nicht davon abhält es bewußt (?) falsch zu machen - siehe diverse "how not to do" in der Spec, die im MSIE laufen)

      Grüße aus Bleckede

      Kai

      1. Hallo Kai,

        nop, die CSS-Spezifikation sagt ausdrücklich, dass margin:auto; das gleiche ist wie margin-left:auto; margin-right:auto;

        also ich finde nur:
        "The 'margin' property is a shorthand property for setting 'margin-top', 'margin-right', 'margin-bottom', and 'margin-left' at the same place in the style sheet."

        http://www.w3.org/TR/REC-CSS2/box.html#propdef-margin

        Viele Grüße,
        Stefan

        1. hi

          irgendwo in dem Gemüse da (ist übrigens herrlich zu lesen, für leute, die gerne in Zufallsfunktionen eine Regelmäßigkeit suchen *g*
          http://www.w3.org/TR/REC-CSS2/visudet.html#Computing_widths_and_margins

          Grüße aus Bleckede

          Kai

      2. hi

        Das ist nicht ganz richtig, richtiger wäre

        table { margin-left: auto; margin-right: auto }

        zu definieren, ansonsten definierst du auch

        table { margin-top: auto; margin-bottom: auto }

        was du eventuell gar nicht willst.

        nop, die CSS-Spezifikation sagt ausdrücklich, dass margin:auto; das gleiche ist wie margin-left:auto; margin-right:auto;

        Die Empfehlung für CSS Level 2 sagt ausdrücklich, dass

        margin:        auto;

        dasselbe ist, wie

        margin-right:  auto;
          margin-left:   auto;
          margin-top:    auto;
          margin-bottom: auto;

        Nach Anwendung aller Stylesheets kann es natürlich sein, dass das anzugeben für den berechneten wert der Eigenschaft keine Auswirkung hat, davon ist aber nicht auszugehen. Vielleicht hat der Benutzer beschlossen, immer einen 2ex Abstand vor und nach einer Tabelle für sinnvoll zu erachten, dann definiert er

        margin-top: 2ex;
          margin-bottom: 2ex;

        mit

        margin:        auto;

        überschreibst du 2ex mit auto, mit

        margin-right:  auto;
          margin-left:   auto;

        tust du das nicht. Die Frage ist natürlich, was man im Endeffekt wünscht, aber pauschal (sprich, ohne sich Gedanken darüber zu machen) margin: auto zu verwenden, ist nicht empfehlenswert.

        (was M$ sicherlich noch lange nicht davon abhält es bewußt (?) falsch zu machen - siehe diverse "how not to do" in der Spec, die im MSIE laufen)

        Im WinIE6 und MacIE51 gibt es das Problem nicht.