2 Stimmen

Nehmen Sie last-child anstelle von first-child auf der einzigen Tabellenzeile

Ich habe folgendes CSS:

table tbody tr:last-child td {
  padding-top: 7px;
  border-bottom: 0;
}

table tbody tr:first-child td {
  padding-top: 6px;
}

Jetzt habe ich vielleicht eine Tabelle mit nur einer Zeile.
Die einzige Tabellenzeile ist jetzt first-child zugewiesen statt last-child, aber ich möchte es umgekehrt haben.

Gibt es einen Weg ohne Javascript?

0 Stimmen

"Wie kann ich last-child allen zuweisen anstelle von first-child"? Könnten Sie dies umformulieren? Wo haben Sie eine border-bottom definiert?

1 Stimmen

Vielleicht eine dumme Frage, aber hast du border-bottom:none; und border-bottom:0px; ausprobiert?

0 Stimmen

@poepje: Es betrifft nicht die Tabellenzeile, weil, wie ich im Entwicklerkonsolen sehe, first-child der Zeile zugewiesen ist. @ F. Calderan: Ich versuche es, aber es fällt mir irgendwie schwer zu erklären.

1voto

Sófka Punkte 973

Sie können eine Regel erstellen, die nur dann gilt, wenn tr gleichzeitig first-child und last-child ist, und diese tabelle tbody tr:first-child:last-child td zu denselben Stilen hinzufügen wie tabelle tbody tr:last-child td. Es wird so aussehen:

tabelle tbody tr:last-child td,
tabelle tbody tr:first-child:last-child td{
  padding-top: 7px;
  border-bottom: 0;
}

Hier scheint es zu funktionieren :) - http://jsfiddle.net/HjZU4/

0 Stimmen

Ich habe die Quelle des Problems gefunden. Es ist recht knifflig, denn es wird durch ein Plugin für jQuery ausgelöst. Trotzdem vielen Dank :)

1voto

Christoph Punkte 48067

Dies kann nicht sein. Sie müssen einen Fehler in Ihrer Markup haben. Wenn es wirklich das einzige tr ist, werden sowohl last ALS AUCH first übereinstimmen.

Beispiel ansehen

Welches CSS angewendet wird, hängt jedoch von der Reihenfolge Ihrer CSS-Regeln ab. Sie können also bestimmen, ob padding-top: 7px; oder padding-top: 6px; angewendet wird, indem Sie die Regeln entsprechend platzieren.

Bearbeitung:

Da Ihr Problem durch ein Plugin verursacht wird, das automatisch eine Zeile am Ende einfügt, können Sie einfach :nth-last-child(2) verwenden, um das vorletzte Element anzupassen.
(Beachten Sie jedoch, dass die Browser-Unterstützung für <code>nth-last-child</code> etwas schlechter ist als für <code>last-child</code>)

0 Stimmen

Ja, aber er hat den gleichen Stil "padding-bottom" bei :first-child und :last-child. Daher wird nur eine dieser Regeln angewendet. Es funktioniert für verschiedene Stile, wie in Ihrem Beispiel z.B. Hintergrund und Rand.

0 Stimmen

Du hast recht, es war mein Fehler. Wie ich in Sófkas Antwort sagte, war es die Schuld eines Plugins. Ich denke, ich muss jetzt etwas darin hacken.

0 Stimmen

@Sófka du kannst das lösen, indem du die CSS-Regeln umschaltest. Sein Problem war, dass nur ein Selektor angewendet wurde, was definitiv ein Fehler war.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X