[20/20] Испытание: вторая раскладка

Прошу посмотреть код, буду рада критике и советам по оптимизации. Спасибо!

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

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

.cards {
    position: relative;
    width: 380px;
    text-align: left;
}

.cards li {
    width: 37px;
    height: 55px;
}

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

li:not(:first-child) {
    margin-left: -20px;
}

ul::after {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    display: block;
    width: 37px;
    height: 55px;
    border: 1px dashed #33bb33;
    border-radius: 5px;
}

li:nth-child(4n+1){
    background-color: #ffcc33;
}
ul:not(:first-of-type) li:nth-child(4n+2){
    background-color: #0099ff;
}

ul:nth-of-type(2n) li:nth-child(4n) {
    background-color: #ff3300;
}

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

ul:first-of-type li:nth-child(2n) {
    background-color: #996666;
}

Возник вопрос, стоит ли в этом фрагменте задать задать псевдокласс :not

    ul:not(:first-of-type) li:nth-child(4n+2){
        background-color: #0099ff;
    }

        ul:first-of-type li:nth-child(2n) {
            background-color: #996666;
        }

или достаточно положиться на очередность селекторов/свойств? с

Вы имеете в виду переопределение свойств?

да, именно

Зависит от конкретного случая. Иногда проще положиться на очередность селекторов, чем утяжелять какой-то из них с помощью :not. А так оба варианта правильные на мой взгляд.

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

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

.cards {
    position: relative;
    width: 380px;
    text-align: left;
}

.cards li {
    width: 37px;
    height: 55px;
}

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

li:nth-of-type(n):not(:first-of-type) {
    margin-left: -20px;
}

ul::after {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    display: block;
    width: 37px;
    height: 55px;
    border: 1px dashed #33bb33;
    border-radius: 5px;
}

li:nth-of-type(4n+1) {
    background-color: #ffcc33;
}

ul:not(:first-of-type) li:nth-of-type(4n+2)  {
    background-color: #0099ff;
}

ul:nth-of-type(even) li:nth-of-type(4n) {
    background-color: #ff3300;
}

.ace.spade ~ .heart {
    background-color: #339933;
}

ul:first-of-type li:nth-of-type(even) {
    background-color: #996666;
}

Только что увидел опять:

li:nth-of-type(n)

Можно было записать:

li:not(first-child)

… капец))

1 лайк