#css #css-selectors
Вопрос:
Здравствуйте, я хочу, чтобы целевой класс = «раздел», Как я могу использовать первый тип или первый дочерний элемент для таргетинга только на верхний уровень. Не тот, вложенный?
.site-content > .section-wrap > .section {
margin-top: 1.5vmax;
}
<div class="site-content">
<div class="section-wrap">
<div class="section">Target This</div>
<div class="section">Target This</div>
<div class="section">Target This
<div class="site-content">
<div class="section-wrap"></div>
<div class="section">Not this</div>
</div>
</div>
div class="section">Target This</div>
div class="section">Target This</div>
</div>
</div>
Ответ №1:
Вы не сможете использовать :первый по типу или :первый потомок, чтобы ориентироваться только на один верхний уровень и игнорировать вложенный.
Оба этих псевдо-селектора css проверяют ребенка на наличие непосредственного родителя.
Комментарии:
1. Я думал, что смогу нацелиться на первый контент сайта, используя первый тип
2. Да, люди часто путают с таким поведением. Если вы посмотрите на приведенный выше скриншот, объясняющий :первый тип, он по-прежнему выделяет 3 абзаца. @BlueLi Оба :первый тип и :первый дочерний элемент полезны для выбора непосредственного дочернего элемента элемента, а не любого из них во вложенном DOM.
3. @BlueLi Если вы считаете, что этот ответ помог, пожалуйста, проголосуйте и отметьте его как свой ответ. Спасибо 🙂
Ответ №2:
В соответствии с вашей разметкой
.site-content > .elementor-section-wrap .elementor-section
если вы не хотите выбирать вложенный, вы делаете это с помощью :не селектор
:not(.site-content) .site-content > .elementor-section-wrap .elementor-section
Комментарии:
1. Я допустил ошибку в разметке, я обновил вопрос. Пожалуйста, взгляните еще раз, спасибо
Ответ №3:
Если ваш опубликованный HTML-код обернут только body
элементом, вы можете использовать этот селектор:
body > .site-content > .section-wrap > .section {
margin-top: 1.5vmax;
}
Если между body
вами и вашим первым уровнем есть еще один элемент .site-content
, включите его в селектор, также используя >
оператор для прямых потомков.