Селекторы, часть 2 / Испытание: первая раскладка

Здравствуйте. Помогите пожалуйста, обьясните почему если я использую
li:not(:nth-of-type(4)) {
margin-left: -15px;
}

а когда использую:
i:not(:nth-child(2)) {
margin-left: -15px;
}
то все становиться по своим местам???
Ведь :nth-of-type работает почти так же, как и :nth-child. Разница заключается в том, что он учитывает тип элемента.

Весь код текстом, пожалуйста.

html,
body {
margin: 0;
padding: 0;
font-family: “Arial”, sans-serif;
}

body {
min-width: 550px;
min-height: 250px;
padding: 10px;
}

.cards {
width: 500px;
}

.cards li::before {
font-family: “Courier”, monospace;
}

li:not(:nth-of-type(4)) {
margin-left: -15px;
}

li:not(:nth-child(5)) {
width: 36px;
height: 54px;
}

li:nth-of-type(4){
margin-right: 30px;
margin-left: 15px;
}

.diamond:nth-child(even){
background-color: #0099ff;
}

li:nth-of-type(2):not(.club) {
background-color: #ff3300;
}

ul:last-of-type li:nth-of-type(3n) {
background-color: #339933;
}

Зато результат с
li:not(:nth-child(2)) {
margin-left: -15px;
}
дает 100%

Выбирая li:not(:nth-child(2)) вы по сути выбираете все дочерние элементы ul кроме первого li, который при счете с :nth-child считается вторым.
Почему решили писать :not(:nth-of-type(4)) - не знаю. Вы должны сдвинуть все, кроме первого li, а значит правильная запись будет :not(:first-of-type).

Спасибо Вам большое, а то я совсем запутался

html,
body {
margin: 0;
padding: 0;
font-family: “Arial”, sans-serif;
}

body {
min-width: 550px;
min-height: 250px;
padding: 10px;
}

.cards {
width: 500px;
}

.cards li::before {
font-family: “Courier”, monospace;
}

ul:nth-child(n+1) li {
margin-left: -15px;

}

ul:nth-child(n+1) li:not(.nine) {
width: 36px;
height: 54px;
}

ul:nth-child(n+1) li:nth-last-of-type(6) {
margin-right: 30px;
margin-left: 15px;
}

.diamond:not(.nine):not(.king):not(.jack):not(.seven) {
background-color: #0099ff;
}

ul:nth-last-of-type(n+1) li:nth-of-type(2):not(.club) {
background-color: #ff3300;
}

ul:nth-last-of-type(1) li:nth-child(3n+1) {
background-color: #339933;
}

Подскажите пожалуйста, что не так?

ul:nth-child(n+1) li {
margin-left: -15px;
}

ошибка вот тут. переделаете, будет 100%

В общем я не разобрался, что нужно поменять в этом месте:
ul:nth-child(n+1) li {
margin-left: -15px;}
и поэтому просто в body добавил padding-left: 19px; и у меня 100%. если можно напишите правильный ответ.

.cards li:not(:first-of-type)

Спасибо) Все получилось.