20/28 Два варианта на 100% и вопрос к знатокам.

Доброго дня! Обнаружил, что данное задание можно решить двумя разными методами. первый вариант кривоватый, родил сам. Если коротко, суть в увеличении правого падинга у последнего элемента с помощью псевдокласса.

Вариант 1.

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

.main-menu li {
display: inline-block;
}

.main-menu a {
display: block;
color: #ffffff;
background: #2980b9;
border-left: 2px solid #2c3e50;
text-decoration: none;
padding: 10px 15px;
margin-left: -5px;
}

.main-menu li:last-child a {
margin-right: -5px;
padding-right: 40px;
}

.active a {
background: #1abc9c;
}

Второй вариант подсмотрел у коллеги, код короче и красивее, нет необходимости использовать псевдокласс. Если коротко, суть в назначении фона для всего блока (списка) ul.

Вариант2.

.main-menu {
background-color: #2980b9;
padding: 0;
margin: 0;
}

.main-menu li {
display: inline-block;
margin-right: -5px;
}

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

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

Однако я не могу понять, каким образом во втором (красивом) варианте у меню появился отступ в 5 пикселей с левой стороны (как это и нужно по заданию). В своем варианте я для .main-menu специально указал падинг слева в 5px.

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

Во втором же варианте (красивом) падинги и маргины обнулены

.main-menu {
background-color: #2980b9;
padding: 0;
margin: 0;
}

однако отступ у меня все ровно есть. Откуда он?

2 лайка

Я пока не знаток, но, возможно, это паддинги от body по 10px. За красивый вариант - спасибо) подсмотрела)))

В первом случае вы задаете отрицательный отступ для ссылок, а во втором для li. Отсюда и разница.