Для выравнивания дочерних элементов вы можете убедиться, что у дочерних элементов такой же отступ / ширина, что и у родительского элемента.
.nav > li > a {
width: 200px;
padding: 0 10px;
}
.nav .subnav-block li a {
margin-left: 10px;
}
Чтобы показать все дочерние элементы при наведении, просто используйте вместо этого: hover для родительского элементаребенка:
.nav:hover > li > .subnav-block {
opacity: 1;
visibility: visible;
overflow: visible;
}
Я сделал еще несколько изменений, подробности см. в ручке.
https://codepen.io/davidtorresdesign/pen/agXGPY