Разберу решение пошагово — вот полный код для разворачивающегося древовидного меню на HTML и CSS. ## HTML-структура ```html Древовидное меню ``` ## CSS-код (style.css) ```css /* Базовые стили для меню */ .tree-menu ul { list-style: none; margin: 0; padding: 0; } .tree-menu a { text-decoration: none; color: #333; display: block; padding: 10px 15px; transition: all 0.3s ease; } .tree-menu a:hover { background-color: #e9ecef; color: #007bff; } /* Стили для пунктов с подменю */ .has-children > a { position: relative; padding-right: 30px; } .has-children > a::after { content: "▶"; position: absolute; right: 15px; top: 50%; transform: translateY(-50%); font-size: 0.8em; transition: transform 0.3s ease; } /* Подменю — изначально скрыто */ .submenu { display: none; padding-left: 20px; } /* Показываем подменю при наведении */ .has-children:hover .submenu { display: block; } /* Меняем стрелку при наведении */ .has-children:hover > a::after { content: "▼"; } /* Дополнительные стили для улучшения внешнего вида */ .tree-menu { font-family: Arial, sans-serif; max-width: 300px; border: 1px solid #ddd; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); } .tree-menu li { border-bottom: 1px solid #eee; } .tree-menu li:last-child { border-bottom: none; } ``` --- ## Как это работает 1. **HTML-структура**: * Используется вложенность `