Как использовать CSS для стиля потомка (не прямой ребенок) элемента?

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

  •  05-10-2019
  •  | 
  •  

Вопрос

Я пытаюсь переопределить стиль потомка (не прямым ребенком) элемента с использованием CSS.

Скажи, я работаю над:

<table id="z_d__h3-real" class="z-hbox">
 <tbody>
   <tr valign="top">
   -----
   </tr>
  </tbody>
</table>

Я хочу переопределить стиль, чтобы установить Valign из элемента TR в «Центр».

Я пытался делать:

table.z-hbox tr {
    vertical-align:center;
}

Это не работает, хотя. Я предполагаю, что TALL.Z-HBOX TR смотрит на прямой ребенок <tr> Что не так здесь. Так как <tr> обернут внутри <tbody>

Как это исправить?

Это было полезно?

Решение 3

Проблема не с приоритетом. Я понял, что это должно быть

Вертикально-выравнивание: середина Вместо вертикального выравнивания: центр

Это работает.

Другие советы

Встроенные стили имеют более высокий приоритет, чем те, которые определены в тегах или стилей, включают. Либо удалить valign="top" атрибут (в любом случае атрибут (он устарел в новых версиях стандарта HTML) или, если вы не можете изменить разметку, отметьте правило CSS как !important. Отказ Сам селектор хорош (вы можете проверить это, добавив другие правила).

Ваши CSS в порядке. Whitespace между селекторами выбирает потомки, > будет необходим для прямых детей.

Ваша проблема заключается в том, что встроенный атрибут имеет приоритет над стилем в стиле в стиле. Вы можете попробовать использовать !important, но я не честно знаю, как приоритет работает с устаревшим HTML-атрибутами. Я никогда не использую их.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top