Linuchs: class für Tabellenspalte

Moin,

immer wieder kommt es vor, dass ich Tabellenspalten einfüge oder neu gruppiere. Bisher kenne ich nur sowas: td:nth-of-type(4) {text-align:center}

Nach dem Einfügen einer Spalte vor der 4 wird die 4 zur 5 und text-align müsste sich auf 5 beziehen. Tut es natürlich nicht.

Gibt es die Möglichkeit, einer Tabellenspalte eine class zu verpassen, die mitwandert?

Gruß, Linuchs

  1. Hallo

    Gibt es die Möglichkeit, einer Tabellenspalte eine class zu verpassen, die mitwandert?

    ja.

    <tr class="sinnvollerKlassenname"><td>...</tr>
    

    Gruß
    Jürgen

    1. Hallo JürgenB,

      Gibt es die Möglichkeit, einer Tabellenspalte eine class zu verpassen, die mitwandert?

      ja.

      <tr class="sinnvollerKlassenname"><td>...</tr>
      

      Es geht um eine Tabellenspalte.

      Bis demnächst
      Matthias

      --
      Du kannst das Projekt SELFHTML unterstützen,
      indem du bei Amazon-Einkäufen Amazon smile (Was ist das?) nutzt.
      1. Hallo

        Gibt es die Möglichkeit, einer Tabellenspalte eine class zu verpassen, die mitwandert?

        ja.

        <tr class="sinnvollerKlassenname"><td>...</tr>
        

        Es geht um eine Tabellenspalte.

        Ups, das geht dann nicht mehr so einfach. Da müssen, wie Matthias schon schrieb, die Spalten einzeln behandelt werden. Da aber beim Einfügen einer Spalte alle Zeilen behandelt werden müssen, kann man auch eben noch die css-Zeile anpassen.

        Gruß
        Jürgen

  2. Hallo Linuchs,

    immer wieder kommt es vor, dass ich Tabellenspalten einfüge oder neu gruppiere. Bisher kenne ich nur sowas: td:nth-of-type(4) {text-align:center}

    Nach dem Einfügen einer Spalte vor der 4 wird die 4 zur 5 und text-align müsste sich auf 5 beziehen. Tut es natürlich nicht.

    Gibt es die Möglichkeit, einer Tabellenspalte eine class zu verpassen, die mitwandert?

    Semantik.

    Du solltest dir überlegen, aus welchem Grund die Zellen der Spalte zentriert dargestellt werden sollen. Die Tatsache, dass es die 4. Spalte ist, kann es ja nicht sein. Diesen Grund kannst du in eine Klassenbezeichnung schreiben, den du aber leider (meines Wissens) allen Zellen geben musst.

    Bis demnächst
    Matthias

    --
    Du kannst das Projekt SELFHTML unterstützen,
    indem du bei Amazon-Einkäufen Amazon smile (Was ist das?) nutzt.
    1. Hallo miteinander,

      Gibt es die Möglichkeit, einer Tabellenspalte eine class zu verpassen, die mitwandert?

      Semantik.

      Du solltest dir überlegen, aus welchem Grund die Zellen der Spalte zentriert dargestellt werden sollen. Die Tatsache, dass es die 4. Spalte ist, kann es ja nicht sein. Diesen Grund kannst du in eine Klassenbezeichnung schreiben, den du aber leider (meines Wissens) allen Zellen geben musst.

      nicht getestet, nur ins Blaue gedacht: Das sollte doch eigentlich mit colgroup und col lösbar sein.

      Ciao,
       Martin

      --
      Der geistige Horizont ist der Abstand zwischen Brett und Hirn.
      1. Hallo Der Martin,

        nicht getestet, nur ins Blaue gedacht: Das sollte doch eigentlich mit colgroup und col lösbar sein.

        ne, leider nicht. Die Zellen sind keine Nachfahren der Spalten. https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_col_test

        Bis demnächst
        Matthias

        --
        Du kannst das Projekt SELFHTML unterstützen,
        indem du bei Amazon-Einkäufen Amazon smile (Was ist das?) nutzt.
        1. Hallo Matthias,

          aber die w3schools Seite zeigt doch gerade, dass Eigenschaften, die ich auf ein col Element anwende, für alle th/td gelten, die dieser Spalte entsprechen. D.h. wenn sich Spalten verschieben muss man lediglich ein class-Attribut von einem col- Element zum anderen verschieben.

          Das col Element hat hier eine Sonderrolle - es beeinflusst Elemente, die sein logisches Kind sind. Das kriegt man nicht mal mit Grid hin, würde ich behaupten.

          Im Gegensatz zu tr td:nth-child(n) werden dabei sogar colspans berücksichtigt.

          guckst du hier

          Klappt in aktuellen Chrome, Firefox, Edge und sogar IE11.

          Rolf

          --
          sumpsi - posui - clusi
          1. Hallo Rolf B,

            guckst du hier

            guckst du weiter

            Bis demnächst
            Matthias

            --
            Du kannst das Projekt SELFHTML unterstützen,
            indem du bei Amazon-Einkäufen Amazon smile (Was ist das?) nutzt.
        2. Hallo Matthias,

          nicht getestet, nur ins Blaue gedacht: Das sollte doch eigentlich mit colgroup und col lösbar sein.

          ne, leider nicht. Die Zellen sind keine Nachfahren der Spalten. https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_col_test

          nein, Nachfahren der col-Elemente sind sie nicht. Aber ein col-Element repräsentiert doch alle Zellen der jeweiligen Spalte. Rolf hat es offensichtlich schon im Versuch bestätigt.

          Ciao,
           Martin

          --
          Der kürzeste Schüttelreim:
          Be root. Re-boot.
          1. Hallo Der Martin,

            nein, Nachfahren der col-Elemente sind sie nicht. Aber ein col-Element repräsentiert doch alle Zellen der jeweiligen Spalte. Rolf hat es offensichtlich schon im Versuch bestätigt.

            Für Hintergründe https://wiki.selfhtml.org/wiki/CSS/Eigenschaften/Tabellenformatierung/Hintergrund, nicht für andere Eigenschaften https://jsfiddle.net/hqzc5j3s/2/

            Bis demnächst
            Matthias

            --
            Du kannst das Projekt SELFHTML unterstützen,
            indem du bei Amazon-Einkäufen Amazon smile (Was ist das?) nutzt.
            1. Hallo Matthias,

              ach verdammt, immer diese Sch___realität :(

              Dann eben doch ein class="foo" Attribut an jedem td Element der Spalte. Ist natürlich nervig, aber vermutlich nicht so schlimm wenn man es programmgesteuert generiert. Und es kostet etwas Extradatenvolumen.

              Rolf

              --
              sumpsi - posui - clusi
              1. Hallo Rolf,

                Dann eben doch ein class="foo" Attribut an jedem td Element der Spalte.

                Okay, habe ich jetzt so gemacht.

                Und es kostet etwas Extradatenvolumen.

                Nöö, weil die Tabelle mit Javascript aufgebaut wird. Die Daten selbst kommen unverändert als CSV.

                In diesem Fall für eine geschlossene Benutzergruppe, aber warum nicht auch für öffentliche Listen/Tabellen? Ich glaube kaum, dass noch jemand mit ausgeschaltetem JS unterwegs ist, da funktionieren immer weniger Seiten.

                Hier eine öffentliche Tabelle, im Quellcode ist der JS csv_string zu sehen: http://shanty-fsd.de/liederliste.php

                Linuchs

                1. @@Linuchs

                  Ich glaube kaum, dass noch jemand mit ausgeschaltetem JS unterwegs ist

                  Da denkst du falsch. Es mag zwar stimmen, dass kaum jemand JavaScript bewusst deaktiviert; aber ausgeschaltetes JS ist nicht der einzige Grund, warum JS nicht ausgeführt wird. Und auch nicht der Hauptgrund.

                  da funktionieren immer weniger Seiten.

                  Ja, schon blöd, das Funktionieren einer Seite von der Ausführung von JavaScript abhängig zu machen, wenn es nicht sein muss.

                  LLAP 🖖

                  --
                  „Man kann sich halt nicht sicher sein“, sagt der Mann auf der Straße, „dass in einer Gruppe Flüchtlinge nicht auch Arschlöcher sind.“
                  „Stimmt wohl“, sagt das Känguru, „aber immerhin kann man sich sicher sein, dass in einer Gruppe Rassisten nur Arschlöcher sind.“

                  —Marc-Uwe Kling