Wie CSS-Stil verwenden, um einen Abkömmling (keine direktes Kind) ein Element?
-
05-10-2019 - |
Frage
Ich versuche, den Stil eines Nachkommen (nicht die direkte Kind) eines Elements mit CSS außer Kraft zu setzen.
Sprich: Ich arbeite an:
<table id="z_d__h3-real" class="z-hbox">
<tbody>
<tr valign="top">
-----
</tr>
</tbody>
</table>
Ich mag den Stil zu überschreiben die valign des tr-Elements auf „Mitte“ zu setzen.
Ich habe versucht zu tun:
table.z-hbox tr {
vertical-align:center;
}
Dies gilt allerdings nicht funktionieren. Ich gehe davon aus table.z-hbox tr für eine direkte Kind <tr>
sucht sich was hier nicht der Fall ist. Wie <tr>
innerhalb <tbody>
gewickelt
Wie kann ich dieses Problem beheben?
Lösung 3
Das Problem ist nicht mit dem Vorrang. Ich fand heraus, dass es sein sollte
vertical-align: middle anstelle von vertical-align: center
Das funktioniert.
Andere Tipps
Inline-Stile haben eine höhere Priorität als die in Tags oder ein Stylesheet definiert sind. Entfernen Sie entweder das valign="top"
Attribut (in neueren Versionen des HTML-Standard veraltet ist sowieso), oder, wenn Sie nicht das Markup ändern, die CSS-Regel als !important
markieren. Der Wähler selbst ist gut (Sie dies, indem andere Regeln testen).
Ihre CSS ist in Ordnung. Whitespace zwischen Wähler wählt Nachkommen würde >
für direkte Kinder benötigt werden.
Ihr Problem ist, dass das Inline-Attribut Vorrang vor dem Stil im Stylesheet nimmt. Sie könnten versuchen, !important
verwenden, aber ich weiß ehrlich nicht, wie Vorrang arbeitet mit veralteten HTML-Attributen. Ich sie nie verwenden.