B.Eckstein: Formularausrichtung und Mozilla

Hallo allesamt,

in nachfolgendem Formular werden der Text "Titel" und der submit-button im Mozilla 1.0 schön zentriert dargestellt.
Die Tabelle im Form leider nicht.

<html><head><title>test</title>
<style type="text/css"><!--

body { background-color:#cccccc; margin:0px; }

.login { text-align:center; align:center; }

div.login { background-color:white; margin-left: auto; margin-right: auto; }

table.login { vertical-align:top; background-color:#cccccc;
  border-width:2px; border-style:solid; border-color:black; }

td.name { text-align:right; vertical-align:top; }
td.name:after { content:":"; }

--></style></head><body>

<div class="login">xxx

<form class="login">
<table class="login">
 <tr><td class="name">Feld 1</td><td><input type="text" /></td></tr>
 <tr><td class="name">Feld 2</td><td><input type="text" /></td></tr>
</table>
<input type="submit" value=" und los " />
</form>

</div>

</body></html>

Im IE5/IE6 ist dagegen alles ok. Das Form kiege ich im Mozilla nur zentriert, wenn ich um die Tabelle einen <div align=center> setze.
Das kann aber nicht der richtige Weg sein.

Mache ich hier im Stylesheet was falsch, oder der Mozilla?

  1. Der Mozilla macht da eigentlich nichts falsch. Er nimmt für einen Tag immer das speziellste Element aus dem css-Bereich. Der IE dagegen nimmt offenbar alle Elemente (auch allgemein deklarierte). Soll heißen:

    table.login ist spezieller als .login. Daher nimmt Mozilla für den table-Tag nur das table.login Element. Wenn Du zusaetzlich noch alles zentriert haben willst, wuerde ich folgendes machen:

    im css-Abschnitt:
    .zentriert = { text-align:center; align:center; }
    table.login = { vertical-align:top; background-color:#cccccc;
      border-width:2px; border-style:solid; border-color:black; }

    im html-Abschitt:
    ...
    <table class="login zentriert">
    ...

    Alles, was zentriert sein soll, bekommt einfach zusaetzlich den Style "zentriert".

    Ich hoffe, das hilft Dir ein bisschen.
    Thomas

    1. hi

      Der Mozilla macht da eigentlich nichts falsch. Er nimmt für einen Tag immer das speziellste Element aus dem css-Bereich. Der IE dagegen nimmt offenbar alle Elemente (auch allgemein deklarierte).

      nein!
      beiden wenden hier beides an, nur:

      .login { text-align:center; align:center; }
      hat praktisch keine Wirkung.

      'align' gibt es schonmal gar nicht.
      'text-align' zentriert den Test _innerhalb_ der Tabelle, was du aber überall wieder aufhebst.

      table.login{margin-left:auto;margin-right:auto;}
      wäre es, wie man nach CSS2-Spec die Tabelle in die Mitte kriegt.

      Grüße aus Bleckede

      Kai

      1. 'align' gibt es schonmal gar nicht.

        Sorry, das war ein Tippfehler von mir.

        table.login{margin-left:auto;margin-right:auto;}
        wäre es, wie man nach CSS2-Spec die Tabelle in die Mitte kriegt.

        Klasse, das war's.

        Danke.