class für Tabellenspalte
Linuchs
- css
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
Hallo
Gibt es die Möglichkeit, einer Tabellenspalte eine class zu verpassen, die mitwandert?
ja.
<tr class="sinnvollerKlassenname"><td>...</tr>
Gruß
Jürgen
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
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
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
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
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
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.
Klappt in aktuellen Chrome, Firefox, Edge und sogar IE11.
Rolf
Hallo Rolf B,
Bis demnächst
Matthias
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
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
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
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
@@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 🖖