CSS падащо меню със закъснение

Нормално css падащо меню, направено чрез превключване на display:none; /дисплей:блок; висенето при задържане има два досадни недостатъка:

— подменюто се показва незабавно, щом курсорът на мишката влезе в зоната на родителския елемент — подменюто незабавно изчезва, щом курсорът напусне подменюто

Пример за такова меню:

За да създам малко забавяне преди показване и скриване на подменюто, използвах javascript, но сега попаднах на опция css.

Фокусът е върху свойството за преход или по-скоро върху неговото подсвойство за забавяне на прехода, което ви позволява да добавите закъснение преди показването на анимацията:

Тъй като анимацията не може да бъде окачена на дисплея, за да скриете подменюто, трябва да използвате opacity:0; видимост: скрита; .

Коментари

Използвах този метод, има недостатък, ако менюто / подменюто съдържа куп елементи, а самата страница има малко количество данни, внезапно може да се появи вертикално превъртане.

Показвам менюто с помощта на menu_tree. Уби цяла вечер и не можах да намеря адекватен начин за добавяне на „подменю“ и „елемент от подменю“ към дъщерни елементи. Тези. stdout поставя класовете "menu" и "menu-item" както в родителските, така и в дъщерните елементи на менюто. Как се генерира менюто, показано в примера? Разбира се, възможно е да се достигне до децата чрез css, но исках по-сбит начин без натрупване на каскади.