Типы отношений элементов в CSS
Кратко напомним какие есть отношения у элементов
Прежде чем перейти к изучению селекторов кратко вспомним какие отношения есть у элементов.
Предок ancestor - потомок descendant
Элемент потомок находится в элементе предке, но при этом предок может не быть его родителем (потомок может быть вложен в другой элемент, также являющийся потомком для рассматриваемого предка).
В качестве примера посмотрим разметку
1
2
3
4
5
6
7
8
9
10
11
<div>
div
<p>
<span>span</span>
p
</p>
<a>
a
<i>i</i>
</a>
</div>
И стили к ней
1
2
3
4
div span,
div i {
background-color: #2bcc2b;
}
Только span и элемент i подходят под это отношение, так как они могут находиться на любом уровне вложенности от родителя
Пример отношения предок потомок
Предок - потомок представляет собой отношение, где потомок может быть на любом уровне вложенности.
Родитель parent - Ребенок child
Дочерний элемент (ребенок) находится в родительском и других уровней вложенности между ними нет.
В примере выше в разметку добавим нужные стили
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
div > p {
background-color: #8250df;
}
div > a {
background-color: #df5050;
}
p > span {
background-color: #f08a8b;
}
a > i {
background-color: #e3f8ef;
}
В данном примере, элементы p,a,span,i и отношения div > p, div > a, p > span, a > i являются непосредственными дочерними элементами своих родителей.
Пример отношения родитель ребенок
В отношении родитель ребенок, выбираются непосредственные прямые дочерние элементы на первом уровне вложенности
Соседние элементы sibling
Должны иметь одного и того же родителя. Называются смежными (adjacent), если следуют прямо друг за другом.
1
2
3
p + a {
background-color: #868686;
}
В примере такое отношение наблюдается у элемента a.
Элемент a называется следующим following за элементом p, a p предшествующий preceding элементу.
Пример отношения соседних элементов
В отношении соседних элементов, они должны иметь одного родителя и навигация между ними происходит по принципу предыдущий - следующий.
Остальные элементы
1
2
3
4
5
6
7
8
9
10
11
<div>
div
<p>
<span>span</span>
p
</p>
<a>
a
<i>i</i>
</a>
</div>
Элементы span и i, p и i, span и a в примере считаются безотносительными друг к другу, при условии, что они имеют общего предка.
Более подробно в терминах css читаем в разделе Базовые селекторы в css.
Хотите оптимизировать свой бизнес, нужен сервис, сайт или интеграция.
Бесплатно расчитаю время разработки, предложу решение вашей задачи.
