Come utilizzare i CSS per lo stile un discendente (non un bambino diretta) di un elemento?
-
05-10-2019 - |
Domanda
sto cercando di ignorare lo stile di un discendente (non il figlio diretto) di un elemento usando i CSS.
Di ', sto lavorando su:
<table id="z_d__h3-real" class="z-hbox">
<tbody>
<tr valign="top">
-----
</tr>
</tbody>
</table>
Voglio ignorare lo stile per impostare il valign dell'elemento TR al "centro".
Ho provato a fare:
table.z-hbox tr {
vertical-align:center;
}
Questo non funziona però. Presumo table.z-hbox tr è alla ricerca per un <tr>
figlio diretto, che non è il caso qui. Come <tr>
è avvolto all'interno <tbody>
Come posso risolvere questo problema?
Soluzione 3
Il problema non è con la precedenza. Ho capito che dovrebbe essere
vertical-align: middle anziché verticale-align: center
Questo funziona.
Altri suggerimenti
stili in linea hanno una priorità più alta rispetto a quelli definiti nel tag o un foglio di stile includono. Rimuovere l'attributo valign="top"
(è sconsigliato nelle versioni più recenti dello standard HTML comunque), o, se non è possibile modificare il markup, contrassegnare la regola CSS come !important
. Il selettore in sé è buona (si può verificare questo con l'aggiunta di altre regole).
Il CSS è bene. Lo spazio bianco tra selettori seleziona i discendenti, >
sarebbe necessaria per i figli diretti.
Il tuo problema è che l'attributo in linea ha la precedenza rispetto dello stile nel foglio di stile. Si potrebbe provare a utilizzare !important
, ma io onestamente non so come funziona la precedenza con attributi HTML deprecate. Io non li uso mai.