Перейти к основному содержимому

Комбинаторы CSS

Комбинаторы выражают отношение между двумя или более селекторами.

Один CSS-селектор может состоять из нескольких селекторов, а комбинатор между ними делает выбор более конкретным.

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


Комбинатор потомков (пробел)

Дети, внуки и всё, что вложено глубже, считаются потомками, и этот комбинатор выбирает их всех внутри указанного элемента.

Пример

Выбирается каждый <p> внутри <div>.

Prompt
Продемонстрируйте комбинатор потомков (пробел). Используйте селектор «div p», чтобы установить background-color: yellow для всех абзацев внутри div. Добавьте абзацы как внутри, так и снаружи div, чтобы показать разницу.
Результат: полная HTML-страница

Дочерний комбинатор (>)

Дочерний комбинатор выбирает только прямых потомков указанного элемента.

Пример

Здесь <p> выбирается, только если он является прямым потомком <div>.

Prompt
Продемонстрируйте дочерний комбинатор (>). Используйте селектор «div > p», чтобы установить background-color: yellow для абзацев, являющихся прямыми потомками div. Добавьте вложенные абзацы внутри внутренних элементов, чтобы показать, что выбираются только прямые потомки.
Результат: полная HTML-страница

Комбинатор следующего соседа (+)

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

Пример

Выбирается только первый <p>, идущий сразу после <div>.

Prompt
Продемонстрируйте комбинатор следующего соседа (+). Используйте селектор «div + p», чтобы установить background-color: yellow для первого абзаца, который сразу следует за элементом div. Добавьте несколько абзацев после div, чтобы показать, что выбирается только первый.
Результат: полная HTML-страница

Комбинатор последующих соседей (~)

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

Пример

Выбирается каждый <p>, который идёт после <div> и является его соседом.

Prompt
Продемонстрируйте комбинатор последующих соседей (~). Используйте селектор «div ~ p», чтобы установить background-color: yellow для всех абзацев, являющихся соседями после элемента div. Добавьте абзацы как до, так и после div, чтобы показать разницу.
Результат: полная HTML-страница