Нравится фронтенд — попробуйте самые подробные интерактивные тренажёры от HTML Academy бесплатно. Подойдут и действующим разработчикам, чтобы подтянуть навыки вёрстки.
+ плюс, или «соседский селектор»
Выбирает соседний селектор. Для примера можно написать верстку как в примере предыдущей статьи про "Братские селекторы".
html
<div class="block-2">
<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
<span>5</span>
</div>Опять выберу третий span и изменю в нем цвет текста
css
.block-2 span:nth-child(3) {
color: blue;
}
span изменен цвет текста.Выбираю соседний селектор и меняю у него цвет текста.
css
.block-2 span:nth-child(3) + span {
color: brown;
}
span.Как видно, изменился только один span, а именно четвертый, который находится по соседству с выбранным третьим.
Новички могут подумать что третий span остался синим из-за специфичности. Но это не так:
css
.block-2 span:nth-child(3) + span {
color: brown;
background-color: burlywood;
}
А теперь вопрос студентам и новичкам: а может ли этот селектор выбрать другой span? Проверить это просто! Добавлю всем span какой-нибудь фон, а затем, вложу в четвертый еще один span "4.1"
html
<style>
.block-2 span {
background-color: aqua;
}
.block-2 span:nth-child(3) {
color: blue;
}
.block-2 span:nth-child(3)+span {
color: brown;
background-color: burlywood;
}
</style>
<div class="block-2">
<span>1</span>
<span>2</span>
<span>3</span>
<span>4
<span>4.1</span>
</span>
<span>5</span>
</div>
span фоновый цвет как у других элементов spanВ результате вложенный span остался с фоном как у всех кроме соседнего, а цвет текста в нем наследовался от родительского, соседнего span.
Остался последний вопрос: а что будет, если между третьим и четвертым span добавить любой другой, видимый элемент? Новички могут подумать что наш элемент так же отработает, но, он уже будет не по соседству, а значит селектор не отработает.
