Чтобы сделать это аккуратно, вам, вероятно, придется переконструировать nav-bar
в более определенные компоненты.
Однако быстрое исправление будет:
#main-nav ul.sub-menu {
position: absolute;
left: 0;
right: 0;
background-color: yellow;
width: 125%;
margin-left: -12.5%;
padding-left: 12.5%;
}
Обратите внимание, что указанные выше значения работают только с указанными вами размерами. Если вы хотите изменить какой-либо из них, вам также придется изменить значения в стиле подменю.
EDIT
Другой способ - вообще удалить обертку div и полагайтесь только на поля и отступы для элементов, которые вам нужно центрировать.
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
ul {
list-style: none;
}
a {
text-decoration: none;
}
.logo {
margin-left: 10%;
}
.left-menu {
margin-right: 10%;
}
#main-nav {
width: 100%;
background-color: #EEE;
}
#main-nav ul {
display: flex;
}
#main-nav {
display: flex;
align-items: center;
justify-content: space-between;
position: relative;
}
#main-nav ul.main-menu {
flex: 1;
margin-left: 40px;
}
#main-nav ul.main-menu a {
height: 50px;
display: flex;
align-items: center;
}
#main-nav ul.main-menu a:hover {
background: #000;
color: #FFF;
}
#main-nav ul.sub-menu {
position: absolute;
left: 0;
right: 0;
background-color: yellow;
padding-left: 10%;
}
Если это не сработает и для вас, вам, вероятно, придется использовать JavaScript для вставки подсписка в другой контейнер, который не содержится в оболочке .