Как использовать CSS для стиля потомка (не прямой ребенок) элемента?
-
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-атрибутами. Я никогда не использую их.