15/28 почему нужно обнулять margin

Подскажите, зачем в .main-menu нужно обнулять margin, ведь в body он уже был обнулен и больше нигде не задавался?

Также прошу оценить код.

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

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

.main-menu a {
display: block;
}

ul {
list-style: none;
}

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

.main-menu > li > a {
color: #ffffff;
background-color: #2980b9;
padding: 10px 15px;
border-bottom: 2px solid #2c3e50;
text-decoration: none;
}

.main-menu > li:nth-child(2) {
border-top: 2px solid #2c3e50;
}

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

.main-menu ul {
background-color: #ffffff;
padding: 0;

}

.main-menu li li a {
color: #2980b9;
padding: 5px 15px;
}

.main-menu li li:first-child {
padding-top: 10px;
}

.main-menu li li:last-child {
padding-bottom: 10px;
}`

Потому что у некоторых тегов есть свои стили по умолчанию, это могут быть отступы и оформление. В разных браузерах их величины могут различаться. И чтобы ваша работа одинаково выглядела в любом из них, надо обнулить отступы.

Подскажите, какие тогда теги образовали маргин сверху в 15 задании получается?

    ? Заранее спасибо за ответ.

Какой именно? Если вы имеете в виду отступ сверху между краем окна просмотра и самим меню - то это padding: 10px; у body.