Многоуровневое меню [15/28] подскажите ошибку

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 {
margin: 0;
padding: 0;
list-style: none;
width: 200px;
}

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

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

.main-menu > .active > a {
border-bottom: 2px solid #2c3e50;
background: #1abc9c;
}

.main-menu ul {
margin: 0;
padding: 0;
list-style: none;
}

.main-menu li li a {
color: #2980b9;
background: #ffffff;
text-decoration: underline;
}

Я здесь недавно и знаю не много, мои заметки могут быть неточными или вовсе ошибочными. Тем не менее попытаюсь рассказать, как я это сам понимаю…

Смотрим на результат и видим: во вложенном списке нам не нравиться межстрочный интервал.

Это исправить можно line-height: 0.7;
но, лучше padding: 5px 0 5px 15px;
кратные цифры приятнее глазу, да и в задании просили сделать всё кратно 5.

добавьте в

 .main-menu li li a {
      padding: 5px 0 5px 15px;

Результат изменился, но теперь сам вложенный список стал меньше по высоте.
Отталкиваем его сверху, толкаем вниз всё что после списка.

измените в

  .main-menu ul {
      margin: 10px 0;

Теперь все на месте, но мешает синий фон за вложенным списком.
Это из-за того, что фон назначен не ссылкам а элементам родительского списка.

уберите background: #2980b9; из .main-menu > li
добавьте background: #2980b9; в .main-menu a

И действительно: если мы ссылки сделали блочными, присвоили им цвет шрифта, внутренними отступами изменили их площадь – то логично и фон
и присваивать,
и переопределять именно cсылкам.

Теперь осталось добавить фон всему меню, так сказать по умолчанию

добавьте

   .main-menu {
       background: #fff;

И последний штрих – меню принято оживлять:
добавьте ссылкам псевдоклассы :hover и :active.

1 лайк

Благодарю.