Вам проще воспринимать информацию визуально? При попытке написать CSS-селектор для стилизации конкретных элементов вы озадачиваетесь? Если всё это про вас — не расстраивайтесь, скоро мы это исправим. Если вы только начинаете изучать синтаксис CSS-селекторов, то наверняка вы испытываете трудности с запоминанием того, какой селектор за что отвечает, поэтому я написал для вас это руководство с котиками. Наслаждайтесь!
Выбираем родителей
Чтобы выбрать родительский элемент, достаточно использовать в качестве селектора класс, id или имя элемента. Добавьте после селектора блок объявлений, и этого будет достаточно! Вот пример разметки и стилей:
<div class="parent">
<div class="child"></div>
<div class="child"></div>
</div>
.parent {
border: 10px solid cyan;
}
Вот как стили повлияют на DOM (голубым подсвечен элемент, выбранный нашим селектором):

Выбираем потомков
Потомки бывают двух видов. Первый вид — прямые потомки — это те элементы, которые непосредственно вложены в родителя без всяких промежуточных элементов. Второй — косвенные потомки, они включают в себя как прямых потомков, так и вложенные в них элементы, и так далее вглубь DOM-дерева.
Прямые потомки
Знак > между селекторами говорит браузеру сперва найти элемент по первому селектору, а затем найти всех прямых потомков этого элемента, соответствующих второму селектору. В следующем примере мы выбираем только тех потомков .child, которые лежат непосредственно внутри .parent:
<div class="parent">
<div class="child">
<div class="grand child"></div>
</div>
<div class="child"></div>
</div>
.parent > .child {
border: 10px solid cyan;
}
Эти селекторы выберут следующие элементы DOM:

Косвенные потомки
Селектор для выбора косвенных потомков менее специфичен, чем селектор для выбора прямых потомков. Он выберет все элементы .child, вложенные в элемент .parent, независимо от того, насколько глубоко они находятся в DOM-дереве. Чтобы получить такой селектор, нужно разделить два селектора обычным пробелом. В этом примере мы выберем все дочерние .childвложенные в .parent:
<div class="parent">
<div class="child">
<div class="grand child"></div>
</div>
<div class="child"></div>
</div>
.parent .child {
border: 10px solid cyan;
}
Вот как это будет работать:

Выбираем соседние элементы
Соседним называется элемент, следующий сразу за выбранным элементом, причём они оба располагаются на одном уровне DOM-дерева. Выбирать соседние элементы просто: для этого нужно объединить два селектора знаком +. Взгляните на пример:
<div class="parent">
<div class="child"></div>
<div class="child"></div>
</div>
<div class="sibling">
<div class="child"></div>
</div>
.parent + .sibling {
border: 10px solid cyan;
}
Как это будет работать на DOM:

Применяем несколько селекторов
Иногда вам может потребоваться применить стили к множеству разных элементов. Как это сделать? Ответ прост: нужно записать селекторы через запятую:
<div class="parent">
<div class="child"></div>
<div class="child"></div>
</div>
.parent,
.child {
border: 10px solid cyan;
}
Вот как это сработает на DOM:

Финишируем
Для дальнейшего изучения CSS-селекторов попробуйте ресурс CSS Diner (но, к сожалению, там нет котиков). Он последовательно научит вас использовать как простые, так и сложные селекторы на примере столовых приборов и вкусной еды.
Права
Спасибо всем любителям котиков с Flickr. Все котики распространяются под Creative Commons Attribution 2.0 Generic.
Источник: http://frontender.info/basic-css-selectors-explained-with-cats/
