Come utilizzare i CSS per lo stile un discendente (non un bambino diretta) di un elemento?

StackOverflow https://stackoverflow.com/questions/3791594

  •  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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top