Cómo utilizar CSS para el estilo descendiente (no es un hijo directo) de un elemento?
-
05-10-2019 - |
Pregunta
Estoy tratando de anular el estilo de un descendiente (no el niño directa) de un elemento con CSS.
Say, estoy trabajando en:
<table id="z_d__h3-real" class="z-hbox">
<tbody>
<tr valign="top">
-----
</tr>
</tbody>
</table>
Quiero anular el estilo para establecer el valign del elemento tr a "centro".
He intentado hacer:
table.z-hbox tr {
vertical-align:center;
}
Esto no funciona sin embargo. Asumo table.z-hbox tr está mirando hacia arriba para un niño <tr>
directa que no es el caso aquí. Como <tr>
se envuelve dentro de <tbody>
¿Cómo puedo solucionar esto?
Solución 3
El problema no es con la precedencia. Me di cuenta de que debería ser
vertical-align: medio en lugar de vertical-align: centro
Estos trabajos.
Otros consejos
Estilos en línea tienen mayor prioridad que los que se definen en las etiquetas o una hoja de estilo incluyen. O bien quitar el atributo valign="top"
(que está en desuso en las nuevas versiones del estándar HTML de todos modos), o, si no se puede cambiar el marcado, marque la regla CSS como !important
. El selector en sí es bueno (se puede probar esto mediante la adición de otras normas).
Su CSS está bien. Los espacios en blanco entre selectores selecciona los descendientes, sería necesario >
para niños directos.
Su problema es que el atributo de línea tiene prioridad sobre el estilo en la hoja de estilo. Usted podría tratar de usar !important
, pero no sé cómo funciona la honestidad de precedencia con atributos HTML en desuso. Yo nunca uso de ellos.