[9/20] - 100%. Прошу прокомментировать код.

Здравствуйте! Выполнил задание отчасти интуитивно. Получился код, что ниже.
Если какие-то решения я реализовал неправильно / не оптимально, прошу указать на ошибки.

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 li:nth-of-type(1n+2) {
    margin-left: -15px;
}

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

ul li:nth-child(5) {
    margin-right: 30px;
    margin-left: 15px;
}

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

li.seven:not(.club) {
    background-color: #ff3300;
}

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

Как бы вы прочитали эту формулу? И эту тоже:

1.) Каждый первый элемент li, начиная со второго.
2.) Каждый третий элемент li, начиная с третьего.

  1. Первый элемент только один. “Каждый элемент, начиная со второго”. Иными словами все кроме первого.
  2. Разве это не то же самое, что выбирать просто 3n?

Этот селектор некрасивый, подумайте еще.

1 лайк

А ведь точно! Благодарю за подсказку. Исправил.

А так :slight_smile:?

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

Итоговый код:

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 li:nth-of-type(1n+2) {
    margin-left: -15px;
}

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

ul li:nth-child(5) {
    margin-right: 30px;
    margin-left: 15px;
}

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

ul li.seven:not(.club) {
    background-color: #ff3300;
}

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

Этот интереснее. По крайней мере свежий вариант и прослеживается закономерность.

Здесь подсказку не уловили или решили оставить так?

Всё же не зря в разметку вставлены div-ы. Предполагается, что вы будете использовать :nth-of-type.

1 лайк

Не уловил. Переделал код в части всех замечаний:

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 li:not(:first-of-type)  {
    margin-left: -15px;
}

ul li:not(:nth-of-type(4)) {
    width: 36px;
    height: 54px;
}

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

ul li.diamond:nth-of-type(2n+1) {
    background-color: #0099ff;
}

ul li.seven:not(.club) {
    background-color: #ff3300;
}

ul:last-of-type li:nth-of-type(3n) {
    background-color: #339933;
}
1 лайк