«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему мой дочерний селектор не может стилизовать ячейки таблицы?

Почему мой дочерний селектор не может стилизовать ячейки таблицы?

Опубликовано 21 декабря 2024 г.
Просматривать:342

Why Does My Child Selector Fail to Style Table Cells?

Селектор дочерних элементов и селектор потомков в структурах таблиц

При выборе элементов в HTML-документах разработчики часто используют дочерние селекторы (>) для выбора направляйте дочерние элементы и селекторы потомков для выбора любого вложенного элемента. Однако существуют сценарии, в которых дочерний селектор неожиданно дает сбой.

Рассмотрим следующий пример:

table tr td {
  background-color: red;
}

table > tr > td {
  background-color: blue;
}

Первое правило успешно выбирает все элементы

внутри элементов внутри элементов . Однако второе правило, использующее дочерний селектор (>), не позволяет стилизовать элементы , который, в свою очередь, является дочерним элементом
.

Озадаченные таким поведением, разработчики могут предположить, что, поскольку

является дочерним элементом
, должен применяться дочерний селектор.

Путаница возникает из-за неявного включения элемента

в HTML. По умолчанию браузеры вставляют элемент , содержащий элементы . В результате фактическая структура элемента становится следующей:

В этой измененной структуре

больше не является прямым дочерним элементом , а скорее дочерним элементом , который сам является дочерним элементом
. Следовательно, селектор > не может нацеливаться на .

Чтобы исправить эту проблему, разработчики должны явно выбрать элемент tbody:

table > tbody > tr > td {
  background-color: blue;
}

Это гарантирует, что дочерний селектор нацелен на правильный элемент в измененной структуре. Кроме того, если элемент tbody явно добавлен в HTML-документ, можно использовать тот же селектор.

, поскольку он не является непосредственным дочерним элементом
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3