#css
#css
Вопрос:
У меня есть это меню :
<ul class="elementor-nav-menu">
<li><a href="">Locations</a></li>
<li><a href="">Fuel</a></li>
<li><a href="">About Us</a>
<ul>
<li><a href="">Sub item 1</a></li>
<li><a href="">Sub item 2</a></li>
<li><a href="">Sub item 3</a></li>
<li><a href="">Sub item 4</a></li>
</ul>
</li>
<li><a href="">Contact</a></li>
<li><a href="">Find Us</a></li>
</ul>
Теперь я хочу добавить border-bottom
стиль только к местоположениям, топливу, контакту при наведении курсора мыши.
Для этого я использую следующий CSS:
.elementor-nav-menu li:not(:nth-child(3n)):hover {
border-bottom: 3px solid yellow;
}
Но, похоже, это не работает. Код добавляет стиль к последнему элементу, а также к последнему элементу выпадающего меню, который мне не нужен.
Комментарии:
1. разве вы не можете просто создать отдельный класс для этих трех элементов?
2. @andymccullough вы имеете в виду, что я должен добавить класс к этим 3 элементам?
3. Да, добавьте класс к этим элементам и просто ориентируйтесь на этот класс.
4. Есть ли какой-либо другой способ без добавления класса?
5. И найдите нас с границей или без нее? Для меня это, кажется, работает нормально, за исключением того, что он применяется к вложенным элементам3 таким образом
Ответ №1:
Этот ответ основан на селекторе дочернего комбинатора, который выбирает только прямые дочерние элементы элемента.
.elementor-nav-menu > li:nth-child(1):hover,
.elementor-nav-menu > li:nth-child(2):hover,
.elementor-nav-menu > li:nth-child(4):hover
{
border-bottom: 3px solid yellow;
}
<ul class="elementor-nav-menu">
<li><a href="">Locations</a></li>
<li><a href="">Fuel</a></li>
<li><a href="">About Us</a>
<ul>
<li><a href="">Sub item 1</a></li>
<li><a href="">Sub item 2</a></li>
<li><a href="">Sub item 3</a></li>
<li><a href="">Sub item 4</a></li>
</ul>
</li>
<li><a href="">Contact</a></li>
<li><a href="">Find Us</a></li>
</ul>
Комментарии:
1. Я хочу добавить стиль border-bottom только к местоположениям, топливу, контакту при наведении курсора мыши.
2. Извините, я должен был прочитать более внимательно, я обновил anwser.
3. Какое простое решение! Я должен больше использовать свой мозг 🙂
4. Чтобы остановить переход, вы должны создать стиль по умолчанию для элемента li as
border-bottom: 3px solid transparent
. При наведении это будет отображено в то, что вы хотите, и вуаля.5. вы также можете смешивать селектор с тегами фильтрации, здесь
.elementor-nav-menu > li:not(:nth-child(3)):not(:last-child):hover { border-bottom: 3px solid yellow;}
тоже работает 😉