Hank: CSS tbody:hover und tr:hover, aber mit Ausnahme

Beitrag lesen

Hallo Rolf,

willst Du in manchen Tabellen tatsächlich den ganzen tbody kolorieren?! Denn das ist es, was diese Regel tut: eine Hintergrundfarbe für den kompletten tbody setzen, wenn die Maus hineinfährt. Es sei denn, am tbody ist die Klasse no_hover notiert.

Problem ist, dass tr Elemente kein Kindelement von table sein dürfen. Sie müssen in einem thead, tbody oder tfoot stehen. Wenn Du von den dreien keinen notierst, bekommst Du automatisch einen tbody ins DOM. Und der wird dann von deiner Regel erwischt, weil er natürlich keine no_hover Klasse hat.

Danke für die Erklärung.
Tja, ursprünglich dachte ich, dass es sinnvoll sein könnte, den tbody komplett zu nehmen, wenn ich mal versteckte tr innerhalb von tbodys habe. Kommt z.b. bei verschiebbaren Tabellenzeilen vor, die je eine versteckte input-Zeile haben, die ich onclick sichtbar mache.
Aber im Grunde kann ich darauf verzichten, den tbody zu kolorieren.

Weitere Anmerkungen:

  • deine erste Row möchte vermutlich in ein thead Element hinein, und deine letzte Row in ein tfoot Element. Dann brauchen sie keine speziellen Klassen mehr, sondern du stylest sie als Kindelemente von thead und tfoot. Mutmaßlich möchten die td Elemente der ersten Row dann auch th Elemente sein (weil sie die Spaltenüberschrift bilden).

Ja, ich weiß, dass meine Tabellen styletechnisch noch Updates gebrauchen können. Das liegt daran, dass sie noch aus Anno-Toback-Zeiten sind. Da ging man noch etwas lachser damit um.

thead tr:nth-of-type(2n) {
   background-color: grey;
}

und bist fertig. Die ungeraden Zeilen behalten einfach die Hintergrundfarbe. Ob Du 2n schreibst oder even, ist egal.

Auch das weiß ich. Wie gesagt, da muss ich mich mal komplett drum kümmern, jetzt gings mir erstmal darum, den unhübschen Fehler auszumerzen.

Hank