28/28 100% Просто похвастать.

Summary

html,
body {
margin: 0;
padding: 0;
}

body {
width: 380px;
min-height: 280px;
padding: 10px;
font-family: “Arial”, sans-serif;
font-size: 14px;
line-height: 1.4;
background: #ecf0f1;
}

.main-menu {
position: relative;
width: 200px;
padding: 0;
margin: 0;
}

.main-menu > li {
background-color: #2980b9;
border-bottom: 2px solid #2c3e50;
}

.main-menu a {
display: block;
color: #ffffff;
padding: 10px 15px;
text-decoration: none;
}

.sub-menu {
display: none; /Это не обязательно но делать так делать/
position: absolute;
z-index: 10;
width: 200px;
padding: 0;
margin-left: 180px;
margin-top: -39px; /Тут конечно коряво вышло/
background-color: #1abc9c;
}

.sub-menu li {
list-style: none;
border-bottom: 2px solid #2ecc71;
}

.main-menu .opened .sub-menu {
display: block;
}

.main-menu > .opened > a {
background-color: #1abc9c;
}

/Это не обязательно но делать так делать/

.main-menu li:hover {
background-color: #1abc9c;
}

.main-menu li:hover .sub-menu {
display: block;
}

Коряво, потому что position: relative; задано не для li первого уровня, а в целом для списка.