Какие бывают комбинаторы селекторов и для чего каждый?

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

Короткий ответ

В CSS есть четыре основных комбинатора селекторов: потомок ( ), дочерний (>), смежный сосед (+) и общий сосед (~)

 

Комбинатор потомка выбирает элементы, которые находятся внутри другого элемента, не обязательно на первом уровне. 

Дочерний комбинатор выбирает только непосредственных детей. 

Смежный сосед выбирает элемент, который идет сразу после другого элемента, а общий сосед выбирает все элементы, которые идут после другого элемента, независимо от их уровня вложенности. 

Длинный ответ

Комбинаторы селекторов в CSS позволяют разработчикам более точно выбирать элементы для применения стилей. Рассмотрим каждый из них:

 

Потомок ( ): Комбинатор потомка выбирает элементы, которые находятся внутри другого элемента, независимо от уровня вложенности. Например, селектор div p применяет стили ко всем параграфам внутри элементов div.

 

div p {
    color: blue; /* Все <p> внутри <div> будут синими */
} 

 

 

Дочерний (>): Этот комбинатор выбирает только непосредственных детей. Например, ul > li выберет только те элементы li, которые являются непосредственными детьми элемента ul.

 

ul > li {
    list-style-type: none; /* Только прямые дочерние <li> будут без маркеров */
} 

 

 

Соседний (+): Селектор соседнего элемента выбирает элемент, который следует сразу после другого элемента. Например, h1 + p выберет первый параграф, который идет сразу после заголовка h1.

 

h1 + p {
    margin-top: 0; /* Убирает верхний отступ у первого <p> после <h1> */
} 

 

 

Общий сосед (~): Этот комбинатор выбирает все элементы, которые следуют за указанным элементом на одном уровне вложенности. Например, h1 ~ p выберет все параграфы, которые идут после заголовка h1, независимо от их количества.

 

h1 ~ p {
    color: green; /* Все <p> после <h1> будут зелеными */
} 

 

 

Уровень

  • Рейтинг:

    3

  • Сложность:

    7

Навыки

  • CSS

    CSS

Ключевые слова

Подпишись на React Developer в телеграм