логика при работе с псевдоклассом :hover

111
05 ноября 2021, 15:10
li.top ul.submenu{display:none;}          
li.top:hover ul.submenu {display:block;} 

Первое правило прячет список-подменю.
Второе - показывает подменю, если на верхний пункт меню (родитель), в котором находится подменю, наведут курсор.
Общий принцип - родительский элемент реагирует на наведение мыши и изменяет свойства элементов-потомков.

Мы задаем для элемента li.top ul.submenu (контекстный селектор), тогда почему правило применяется к родителю (в примере 2), а тот изменяет свойство элементов-потомков, чтобы подменю появилось, если даже само свойство не наследуется.

То, что на подменю не навести курсор это понятно - оно скрыто.
Интересен принцип работы (есть ли какое то правило).
Почему свойство применяется к родителю во втором примере?

Answer 1
li.top:hover ul.submenu {display:block;} 

Надо что-то такое, чтобы только один потомок реагировал:

li.top:hover > ul.submenu {display:block;} 
Answer 2

потому что свойство наследуется потомками => ты навел на родителя отреагировали дети, у детей может быть свои потомки, и это упрощает работу с элементами навигации.

READ ALSO
Не прогружаются стили css

Не прогружаются стили css

У меня есть заказчик с Турции и у него сайт выглядит так как будто там не прогрузился CSS, а у меня всё норм долго не мог понять в чём проблема...

191
Установка фона для контейнера

Установка фона для контейнера

Прошу помощи в следующей задаче: Хочу реализовать адаптивную секцию с текстом и изображением 50/50 на полный экранЖелательно в CSS самым элементарным...

123
Не отображается favicon в google [закрыт]

Не отображается favicon в google [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

134