Peter Thomassen: Tabelleninhalt linksbündig ausrichten

HIIIIIIIIILFE ;-)

Hi,
ich möchte gerne in http://www.konzerttechnik-wuerzburg.de/?page=renting den Ta-
belleninhalt immer links ausrichten. <table class="left"> bzw.
<table style="text-align: left"> funktionieren nicht. Mit
<colgroup> will es auch nicht so - muss ich für jede Zelle ein-
zeln die Ausrichtung definieren? Im CSS-File ist td auf justify
gestellt.

Bye,
Peter

  1. Hallo Peter,

    Tabelleninhalt immer links ausrichten. <table class="left"> bzw.
    <table style="text-align: left"> funktionieren nicht. Mit
    <colgroup> will es auch nicht so - muss ich für jede Zelle ein-
    zeln die Ausrichtung definieren? Im CSS-File ist td auf justify
    gestellt.

    Was soll da auch sonst passieren - justify steht fuer zentriert?
    Tabelleninhalt steht in den TDs oder THs, also verwende td {text-align: left;} bzw. td, th {text-align: left;}.

    MfG, Thomas

    1. justify steht fuer zentriert ...

      Natuerlich fuer Blocksatz, sorry.

      MfG, Thomas

    2. Hi,
      hab mich vlt. ein bisschen undeutlich ausgedrückt ...

      Tabelleninhalt immer links ausrichten. <table class="left"> bzw.
      <table style="text-align: left"> funktionieren nicht. Mit
      <colgroup> will es auch nicht so - muss ich für jede Zelle ein-
      zeln die Ausrichtung definieren? Im CSS-File ist td auf justify
      gestellt.

      Was soll da auch sonst passieren - justify steht fuer zentriert?
      Tabelleninhalt steht in den TDs oder THs, also verwende td {text-align: left;} bzw. td, th {text-align: left;}.

      Ich möchte nur die Zellen für diese Tabelle zentrieren! Die ganze
      Seite besteht aus einer Tabelle; alle anderen Zellen sollen Block-
      satz haben.

      Bye,
      Peter

      1. Hallo Peter !

        hab mich vlt. ein bisschen undeutlich ausgedrückt ...

        yep ;-)

        Ich möchte nur die Zellen für diese Tabelle zentrieren! Die ganze
        Seite besteht aus einer Tabelle; alle anderen Zellen sollen Block-
        satz haben.

        Mal sehen ob ich's jetzt verstehe: Du hast mehrere Tabellen.
        Grundsätzlich soll der Zellen-Text im Blocksatz ausgegeben werden.
        Bei einer Tabelle aber linksbündig.
        Falls dem so ist:

        die Styledefinition:
        ...
        td {text-align:justify;}
        td.links {text-align:left;}
        ...

        in der linksbündigen Tabelle:
        ...<td class="links"> ... </td> ...

        MfG McNavc

        1. Hi,

          Mal sehen ob ich's jetzt verstehe: Du hast mehrere Tabellen.
          Grundsätzlich soll der Zellen-Text im Blocksatz ausgegeben werden.
          Bei einer Tabelle aber linksbündig.
          Falls dem so ist:

          die Styledefinition:
          ...
          td {text-align:justify;}
          td.links {text-align:left;}
          ...

          in der linksbündigen Tabelle:
          ...<td class="links"> ... </td> ...

          Genau dieses class-Attribut wollte ich vermeiden. Aber ok, danke.

          Bye,
          Peter

          1. Hallo Peter,

            Genau dieses class-Attribut wollte ich vermeiden.

            Was spricht gegen:

            <table id="xyz">

            und im Stylesheet:

            table#xyz td
            {
            text-align: left;
            }

            d. h. alle td-Kindelemente unterhalb der Tabelle mit dieser id sind linksbuendig formatiert.

            MfG, Thomas

            1. Moin!

              Was spricht gegen:

              <table id="xyz">

              und im Stylesheet:

              table#xyz td
              {
              text-align: left;
              }

              Da spricht dagegen, daß es eine sinnlose Verwendung einer ID ist. Klassen wären da besser.

              Außerdem hat Netscape 4 vermutlich mit dieser ID-Definition ein Problem (jedenfalls wollte er "div#meineid" nicht verstehen, nur "#meineid").

              Also besser:
              table.links td { text-align:left; }

              und die Tabelle dann mit
              <table class="links">
              definieren.

              - Sven Rautenberg

              1. Hi Stefan,

                Also besser:
                table.links td { text-align:left; }

                und die Tabelle dann mit
                <table class="links">
                definieren.

                Danke, genau das hab ich gesucht!

                Bye,
                Peter

              2. Hallo Sven,

                Da spricht dagegen, daß es eine sinnlose Verwendung einer ID ist. Klassen wären da besser.

                Warum soll denn hier eine ID nicht sinnvoll sein, wenn ich genau dieses _eine_ Tabellenelement damit anspreche? Eine Klasse ist da auch nicht besser oder schlechter.

                Außerdem hat Netscape 4 vermutlich mit dieser ID-Definition ein Problem ...

                Das waere natuerlich ein Grund, es mit Klasse zu machen.

                MfG, Thomas

                1. Hallo Sven,

                  Moin!

                  Da spricht dagegen, daß es eine sinnlose Verwendung einer ID ist. Klassen wären da besser.

                  Warum soll denn hier eine ID nicht sinnvoll sein, wenn ich genau dieses _eine_ Tabellenelement damit anspreche? Eine Klasse ist da auch nicht besser oder schlechter.

                  Eine ID ist in der gesamten Seite nur EINMAL verwendbar (eindeutige Identifikation halt). Bei dem angesprochenen Problem war aber eher nicht zu erwarten, daß nur eine einzige Tabelle linksbündig formatiert werden soll, sondern bei solchen simplen Aufgaben ist eine Klasse erstmal die logische Konsequenz: Irgendwas anders formatieren als andere Elemente gleichen Namens, welches möglicherweise mehrfach vorkommt: Klasse nehmen!

                  Wenn du für Fettschrift <b> im allgemeinen etwas definierst, und dann noch eine spezielle Fettschrift benötigst, nimmst du doch auch eine Klasse, oder? Eben weil diese Fettschrift vielleicht noch häufiger gebraucht wird (und das geht eben mit ID nicht).

                  - Sven Rautenberg

                  1. Hallo Sven,

                    Eine ID ist in der gesamten Seite nur EINMAL verwendbar (eindeutige Identifikation halt). Bei dem angesprochenen Problem war aber eher nicht zu erwarten, daß nur eine einzige Tabelle linksbündig formatiert werden soll, sondern bei solchen simplen Aufgaben ist eine Klasse erstmal die logische Konsequenz: Irgendwas anders formatieren als andere Elemente gleichen Namens, welches möglicherweise mehrfach vorkommt: Klasse nehmen!

                    Der Fragesteller hatte zum Zeitpunkt meiner Antwort bereits ausgefuehrt: "Ich möchte nur die Zellen für diese Tabelle zentrieren!". Daraus habe ich diese eine Tabelle geschlossen und eine ID vorgeschlagen.

                    So what? Ansonsten ist natuerlich klar, dass bei mehrfacher Verwendung keine ID in Frage kommt. Davon ging ich aber nicht aus.

                    MfG, Thomas

                    1. Hi Thomas,

                      Der Fragesteller hatte zum Zeitpunkt meiner Antwort bereits ausgefuehrt: "Ich möchte nur die Zellen für diese Tabelle zentrieren!". Daraus habe ich diese eine Tabelle geschlossen und eine ID vorgeschlagen.

                      Soll man daraus folgern, dass man bei einmaligem Vorkommen immer
                      id verwenden sollte? Wo liegt da der Unterschied zu class?

                      Danke für deine Info,
                      Peter

                      1. Moin!

                        Soll man daraus folgern, dass man bei einmaligem Vorkommen immer
                        id verwenden sollte? Wo liegt da der Unterschied zu class?

                        Nein, das sollte man daraus eben NICHT folgern. Es kommt auf das Element an, was man gerade bearbeitet.

                        Beispiel:
                        Fetter Text. Spezieller fetter Text kommt vielleicht doch mehr als einmal vor, also nimmt man eine Klasse.

                        Eine absolut positionierte Navigation hingegen kommt pro Seite genau EINMAL vor. Folglich ist es nicht schlimm, die Navigation mit ID zu formatieren (jedenfalls den sie umschließenden Layer), bzw. es ist im Hinblick auf eventuelle Spielereien mit Javascript und versteckten Layern sogar sehr sinnvoll. Denn nur der Layer, der mit "getElementById" gefunden wird, kann auch angezeigt werden.

                        Es ist also vor der Entscheidung, ob Klasse oder ID zu nehmen ist, erstmal zu fragen: Kommt das Element vielleicht mehrfach auf einer Seite vor? Oder MUSS ich eine ID nehmen, weil es z.B. von Javascript verlangt wird.

                        Ich würde im Zweifel lieber eine Klasse definieren, als eine ID, weil Klassen (wie hoffentlich durchgeklungen ist) vielseitiger verwendbar sind- zumindest mehrfach verwendbar.

                        - Sven Rautenberg

                      2. Hallo Peter,

                        Soll man daraus folgern, dass man bei einmaligem Vorkommen immer
                        id verwenden sollte? Wo liegt da der Unterschied zu class?

                        Nein, IDs verwendet man vor allem dann, wenn man ueber das DOM (Document Object Model) mit Methoden wie getElementById() auf (beliebige) Elemente zugreifen moechte. Wenn man einen anderen Grund hat, die Einmaligkeit eines Elements besonders zu betonen, spricht IMHO auch nichts gegen eine ID. Klassen sind aber vielseitiger, weil nicht an ein Element gebunden und somit auch besser wiederverwendbar.

                        MfG, Thomas