Составные селекторы. Комбинаторы

Автор: Александр Головко Дата публикации: 25.02.2011

Предыдущая статья Селекторы псевдоэлементов.

Во вводной статье Селекторы: общие сведения мы с тобой договорились, что селекторы бывают двух типов — простые и составные. Все рассмотренные ранее селекторы были простыми. Теперь пришла пора познакомиться и с составными.

На самом деле все очень просто. Составные селекторы получаются при объединении простых с помощью специальных символов — комбинаторов.

Составные селекторы очень удобны, так как они позволяют выбирать элементы на основании их размещения в дереве документа. То есть при выборе можно, например, манипулировать такими понятиями как «является потомком», «следует за», «лежит непосредственно внутри».

Если ты не очень хорошо ориентируешься в дереве документа и хочешь разобраться в этом вопросе детальнее, то прежде чем продолжать чтение, ознакомься со статьей Дерево документа HTML.

Если учесть, что вид и количество простых селекторов, связываемых комбинаторами, никто не ограничивает, то становится понятно, какой мощный инструмент вложили в наши руки разработчики CSS. Используя составные селекторы можно, допустим, задать стили для ссылки, на которую навели мышкой, внутри абзаца, который расположен сразу за заголовком h1, при условии, что они (абзац и заголовок) находятся внутри контейнера с определенным классом.

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

Итак, весь секрет в комбинаторах — маленьких символах, наделенных большими полномочиями.

Табличка комбинаторов

Обозначение Название соответствующего селектора Версия CSS
пробел селектор потомка 2
> селектор дочерних элементов 2
+ селектор сестринского элемента 2
~ селектор обобщенных родственных элементов 3

Теперь давай познакомимся с составными селекторами подробнее. Итак, начнем. Прошу любить и жаловать — селектор потомка