а когда использую:
i:not(:nth-child(2)) {
margin-left: -15px;
}
то все становиться по своим местам???
Ведь :nth-of-type работает почти так же, как и :nth-child. Разница заключается в том, что он учитывает тип элемента.
Выбирая li:not(:nth-child(2)) вы по сути выбираете все дочерние элементы ul кроме первого li, который при счете с :nth-child считается вторым.
Почему решили писать :not(:nth-of-type(4)) - не знаю. Вы должны сдвинуть все, кроме первого li, а значит правильная запись будет :not(:first-of-type).
В общем я не разобрался, что нужно поменять в этом месте:
ul:nth-child(n+1) li {
margin-left: -15px;}
и поэтому просто в body добавил padding-left: 19px; и у меня 100%. если можно напишите правильный ответ.