28/28 на 100%. Общая тема

Пускай будет общий топик. Делитесь своими вариантами, комментируйте, критикуйте, усли найдете ошибку: поясните/укажите/тыкните.
Сделал двумя разными способами, оба на 100%.
Первый:
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 {
width: 200px;
padding: 0;
margin: 0;
background: #2980b9;
}
.main-menu li {
position: relative;
list-style: none;
}
.main-menu li a {
display: block;
padding: 10px 15px;
text-decoration: none;
color: #ffffff;
border-bottom: 2px solid #2c3e50;
}
.opened {
background: #1abc9c;
}
.main-menu .sub-menu {

width: 200px;
position: absolute;
top: 0;
left: 140px;    

}
.main-menu .sub-menu a {
background: #1abc9c;
border-bottom: 2px solid #2ecc71;
}
.main-menu > li:hover .sub-menu {
display: block;
}
.main-menu li li {
z-index: 10;
}

Потом подумал, что-то больно много и совсем не комильфо, решил сделать по новой и как-то оптимизировать.
Получилось так:
.main-menu {
position: relative;
margin: 0;
padding: 0;
width: 200px;
background: #2980b9;
}
.main-menu li a {
display: block;
text-decoration: none;
color: #ffffff;
padding: 10px 15px;
border-bottom: 2px solid #2c3e50;
}
.opened {
background: #1abc9c
}
.main-menu .sub-menu {
position: absolute;
list-style: none;
padding: 0;
margin-top: 1px;
top: 40px;
left: 180px;
width: 200px;
}
.main-menu .sub-menu a {
background: #1abc9c;
border-bottom: 2px solid #2ecc71;
}
.main-menu > li:hover .sub-menu {
display: block;
}