Испытание: сложные палитры

не получается сделать как на картинке
вот код:
.palette-box:nth-child(3) .palette-small .part [class*="color-"]{ height: 10px; } .palette-small { display: flex; } .palette-box:nth-child(3) .palette-small .part { display: flex; flex-direction: column; justify-content: space-between }
должно же работать “align-items: flex-end” для " .palette-box:nth-child(3) .palette-small .part:last-child", но не работает, видимо что то не так понял

Ваш код и так работает.
Причем работает даже без этого фрагмента:
.palette-box:nth-child(3) .palette-small .part [class*=“color-”]{
height: 10px;
}
Только надо добавить justify-content: space-between; для .palette-small

2 лайка

разобрался, спасибо

1 лайк

Никак не могу сообразить, почему с last-of-type все работает:

.palette-box:last-of-type .palette-small {
justify-content: space-between;
}

.palette-box:last-of-type .palette-small .part {
display: flex;
}

.palette-box:last-of-type .palette-small .part:last-child {
flex-direction: column-reverse;
justify-content: space-between;
}

А с last-child не работает совсем?
Вроде же .palette-box:last-child - это прямой потомок <body>, стоящий четвертым, т.е. последним из всей семейки .palette-box ?

А можно увидеть html код а то я с телефона, если не трудно, тогда может помогу вам

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Испытание: сложные палитры</title>
        <base href="/assets/course96/">
        <link href="style.css" rel="stylesheet">
        <link href="course.css" rel="stylesheet">
    </head>
    <body class="exam">
        <div class="palette-box">
            <div class="palette-small">
                <div class="color-2"></div>
                <div class="color-3"></div>
                <div class="color-4"></div>
                <div class="color-5"></div>
            </div>
        </div>
        <div class="palette-box">
            <div class="palette-small">
                <div class="color-2"></div>
                <div class="color-6"></div>
                <div class="color-4"></div>
                <div class="color-1"></div>
            </div>
        </div>
        <div class="palette-box">
            <div class="palette-small">
                <div class="part">
                    <div class="color-1"></div>
                    <div class="color-3"></div>
                </div> 
                <div class="part">
                    <div class="color-4"></div>
                    <div class="color-6"></div>
                </div>
            </div>
        </div>
        <div class="palette-box">
            <div class="palette-small">
                <div class="part">
                    <div class="color-7"></div>
                    <div class="color-4"></div>
                </div> 
                <div class="part">
                    <div class="color-2"></div>
                    <div class="color-3"></div>
                </div>
            </div>
        </div>
    </body>
</html>

Пожалуйста)

в ходе испытаний было выявлено что ничем не отличаются, дойдя до данного испытания может смогу дать ответ)

Ок, будем подождать)

это было жЁстко

.palette-box .palette-small {
display: flex;
flex-direction: column;
justify-content: center;
}
.palette-box:nth-of-type(1) .palette-small .color-2 {
order: 1;
}
.palette-box:nth-of-type(1) .palette-small .color-4 {
order: 2;
align-self: center;
}
.palette-box:nth-of-type(1) .palette-small .color-3 {
align-self: center;
}
.palette-box:nth-of-type(2) .palette-small {
justify-content: space-between;
}

.palette-box:nth-of-type(2) .palette-small .color-2 {
order: 3;
align-self: flex-end;
}
.palette-box:nth-of-type(2) .palette-small .color-1 {
order: -1;
align-self: flex-start;
}
.palette-box:nth-of-type(2) .palette-small .color-4 {
align-self: flex-start;
}
.palette-box:nth-of-type(2) .palette-small .color-6 {
order: 2;
align-self: flex-end;
}
.palette-box:nth-of-type(3) .palette-small {
display: flex;
flex-direction: row;
justify-content: space-between;
}
.palette-box:nth-of-type(3) .palette-small .part {
display: flex;
flex-direction: column;
justify-content: space-between;
}
.palette-box:nth-of-type(4) .palette-small {
display: flex;
flex-direction: row;
justify-content: space-between;
}
.palette-box:nth-of-type(4) .palette-small .part {
display: flex;
flex-direction: column-reverse;
justify-content: space-between;
}
.palette-box:nth-of-type(4) .palette-small .part:first-of-type {
display: flex;
flex-direction: row;
}Текст “как есть” (без применения форматирования)

.palette-small {
display: flex;
justify-content: space-between;
}
.palette-box:nth-child(1) > .palette-small {
flex-direction: column;
justify-content: center;
}
.palette-box:nth-child(1) > .palette-small > .color-2 {
order: 3;
}
.palette-box:nth-child(1) > .palette-small > .color-3 {
order: 1;
align-self: center;
}
.palette-box:nth-child(1) > .palette-small > .color-4 {
order: 4;
align-self: center;
}
.palette-box:nth-child(1) > .palette-small > .color-5 {
order: 2;
}
.palette-box:nth-child(2) > .palette-small {
flex-direction: column-reverse;
}
.palette-box:nth-child(2) > .palette-small > .color-4,.palette-box:nth-child(2) > .palette-small > .color-1 {
align-self: flex-start;
}
.palette-box:nth-child(2) > .palette-small > .color-6,.palette-box:nth-child(2) > .palette-small > .color-2 {
align-self: flex-end;
}
.palette-box:nth-child(3) .palette-small .part {
display: flex;
flex-direction: column;
justify-content: space-between;
}
.palette-box:nth-child(4) .palette-small .part:nth-child(2) {
display: flex;
flex-direction: column;
justify-content: space-between;
}
.palette-box:nth-child(4) .palette-small .part:nth-child(2) .color-2{
order: 1;
}
.palette-box:nth-child(4) .palette-small .part:nth-child(1) {
display: flex;
}

Как-то так…

.palette-small {
display: flex;
justify-content: space-between;
}
.palette-box:nth-child(1) > .palette-small {
flex-direction: column;
justify-content: center;
}
.palette-box:nth-child(1) > .palette-small > .color-3 {
order: -2;
align-self: center;
}
.palette-box:nth-child(1) > .palette-small > .color-5 {
order: -1;
}
.palette-box:nth-child(1) > .palette-small > .color-4 {
align-self: center;
}
.palette-box:nth-child(2) > .palette-small {
flex-direction: column-reverse;
}
.palette-box:nth-child(2) > .palette-small > .color-4,.palette-box:nth-child(2) > .palette-small > .color-1 {
align-self: flex-start;
}
.palette-box:nth-child(2) > .palette-small > .color-6,.palette-box:nth-child(2) > .palette-small > .color-2 {
align-self: flex-end;
}
.palette-box:nth-of-type(3) .palette-small .part {
display: flex;
flex-direction: column;
justify-content: space-between;
}
.palette-box:nth-of-type(4) .palette-small .part {
display: flex;
}
.palette-box:nth-of-type(4) .palette-small > .part:last-of-type {
flex-direction: column-reverse;
justify-content: space-between;

}

Задание действительно сложное. Было бы намного проще если разработчики добавят подсказку про вложенные теги. Хорошая тренировка по ним.
Справился только благодаря гуглу.

Вот мой вариант когд:

.palette-small {

display: flex;
justify-content: space-between;

}

.palette-box:first-child>.palette-small {
display: flex;
flex-direction: column-reverse
}

.palette-box:first-child>.palette-small>.color-3,.color-4 {
align-self: center;
}

.palette-box:first-child>.palette-small>.color-4 {
align-self: center;
order: -1;
}

.palette-box:first-child>.palette-small>.color-3 {
align-self: center;
order: 1;
}

/* Блок верхний правый */

.palette-box:nth-child(2)>.palette-small {
display: flex;
flex-direction: column-reverse;
}

.palette-box:nth-child(2)>.palette-small>.color-4,.color-1 {
align-self: flex-start;
}

.palette-box:nth-child(2)>.palette-small>.color-6,
.palette-box:nth-child(2)>.palette-small>.color-2 {
align-self: flex-end;
}

/* Блок нижний левый */

.palette-box:nth-child(3)>.palette-small {
display: flex;

}

.palette-box:nth-child(3)>.palette-small>.part:first-child {
display: flex;
flex-direction: column;
justify-content: space-between;
}

.palette-box:nth-child(3)>.palette-small>.part:last-child {
display: flex;
flex-direction: column;
justify-content: space-between;
}

/* Нижний правый блок */

.palette-box:nth-child(4)>.palette-small>.part:first-child {
display: flex;
flex-direction: row;
justify-content: space-between;
}

.palette-box:nth-child(4)>.palette-small>.part:first-child>.color-4 {
align-self: stretch;
}

.palette-box:nth-child(4)>.palette-small>.part:last-child {
display: flex;
flex-direction: column-reverse;
justify-content: space-between;
}

Это было сложно, но интересно) Не знаю, насколько верно, вышло на 100%.

.palette-small .part {
display: flex;
}
/* Палитра №1 начало*/
.palette-box:nth-child(1) > .palette-small {
display: flex;
flex-direction: column;
justify-content: center;
}

.palette-box:nth-child(1) > .palette-small > .color-3 {
order: -5;
align-self: center;
}

.palette-box:nth-child(1) > .palette-small > .color-5 {
order: -4;
}

.palette-box:nth-child(1) > .palette-small > .color-2 {
order: -3;
}

.palette-box:nth-child(1) > .palette-small > .color-4 {
order: -2;
align-self: center;
}
/* Палитра №1 конец */

/* Палитра №2 начало */

.palette-box:nth-child(2) > .palette-small {
display: flex;
flex-direction: column-reverse;
justify-content: space-between;
}

.palette-box:nth-child(2) > .palette-small > .color-1{
align-self: flex-start;
}

.palette-box:nth-child(2) > .palette-small > .color-4{
align-self: flex-start;
}

.palette-box:nth-child(2) > .palette-small > .color-6{
align-self: flex-end;
}

.palette-box:nth-child(2) > .palette-small > .color-2{
align-self: flex-end;
}
/* Палитра №2 конец */

/* Палитра №3 начало */

.palette-box:nth-child(3) > .palette-small {
display: flex;
justify-content: space-between;
}

.palette-box:nth-child(3) > .palette-small > .part:nth-child(1) {
flex-direction: column;
justify-content: space-between;
}

.palette-box:nth-child(3) > .palette-small > .part:nth-child(2) {
flex-direction: column;
justify-content: space-between;
}

/* Палитра №3 конец */

/* Палитра №4 начало */

.palette-box:nth-child(4) > .palette-small {
display: flex;
justify-content: space-between;
}

.palette-box:nth-child(4) > .palette-small > .part:nth-child(2) {
flex-direction: column-reverse;
justify-content: space-between;
}
/* Палитра №4 начало УРА!!! */

На псведоэлементах 100%

/*Верх слева квадрат*/

.palette-box:nth-of-type(1) .palette-small {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.palette-box:nth-of-type(1) .palette-small .color-2 {
}

.palette-box:nth-of-type(1) .palette-small .color-3 {
  align-self: center;
  order: -2
}

.palette-box:nth-of-type(1) .palette-small .color-4 {
  align-self: center; 
}

.palette-box:nth-of-type(1) .palette-small .color-5 { 
  order: -1
}

/*Верх справа квадрат*/

.palette-box:nth-of-type(2) .palette-small {
  display: flex;
  flex-direction: column-reverse;
  justify-content: space-between;
}

.palette-box:nth-of-type(2) .palette-small .color-2 {
  align-self: flex-end;
}

.palette-box:nth-of-type(2) .palette-small .color-6 {
  align-self: flex-end;
}

.palette-box:nth-of-type(2) .palette-small .color-4 {
  align-self: flex-start;
}

.palette-box:nth-of-type(2) .palette-small .color-1 {
  align-self: flex-start;
}

/*Низ слева квадрат*/

.palette-box:nth-of-type(3) .palette-small {
  display: flex;
  justify-content: space-between;
}

.palette-box:nth-of-type(3) .palette-small .part {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/*Низ квадрат справа*/

.palette-box:nth-of-type(4) .palette-small {
  display: flex;
  justify-content: space-between;
}

.palette-box:nth-of-type(4) .palette-small .part:nth-of-type(1) {
  display: flex; 
}

.palette-box:nth-of-type(4) .palette-small .part:nth-of-type(2) {
  display: flex;
  flex-direction: column-reverse;
  justify-content: space-between;
}

Сначала написала код, потом занялась рефакторингом. Много кусков кода повторяется:

Сводка

.palette-box .palette-small,
.palette-box .palette-small .part{
display: flex;
}

/* Первая палитра */

.palette-box:first-child .palette-small {
flex-direction: column;
justify-content: center;
}

.palette-box:first-child .palette-small .color-2 {
order: 1;
}

.palette-box:first-child .palette-small .color-4 {
order: 2;
align-self: center;
}

.palette-box:first-child .palette-small .color-3 {
align-self: center;
}

/* Вторая палитра */

.palette-box:nth-child(2) .palette-small {
flex-direction: column-reverse;
justify-content: space-between;
align-items: flex-start;
}

.palette-box:nth-child(2) .palette-small .color-6,
.palette-box:nth-child(2) .palette-small .color-2{
align-self: flex-end;
}

/* Третья палитра */

.palette-box:nth-child(3) .palette-small {
justify-content: space-between;
}

.palette-box:nth-child(3) .palette-small .part {
flex-direction: column;
justify-content: space-between;
}

/* Четвертая палитра */
.palette-box:last-child .palette-small {
justify-content: space-between;
}

.palette-box:last-child .palette-small .part:nth-child(2) {
flex-direction: column-reverse;
justify-content: space-between;
}

Спасибо всем умным людям, которые делятся своим решением и помогают отчаянным, типа меня.
Для меня тема флексов невероятно сложная, поведение элементов и самого бокса при том или ином положении оси - чтооооо?
С горем пополам я прошла все задания, пока не дошла до финала.
Благо, есть псевдокласс :nth-child (про который я бы не вспомнила, если бы не зашла сюда, а дальше дело пошло, пусть и растянулось на 2 часа)

Делюсь своим “мутантом”:

.palette-box:nth-child(1) .palette-small {
display: flex;
flex-direction: column;
justify-content: center;
}

.palette-box:nth-child(1) .palette-small .color-3 {
align-self: center;
order: -2
}

.palette-box:nth-child(1) .palette-small .color-4 {
align-self: center;
order: 1
}

.palette-box:nth-child(1) .palette-small .color-5 {
order: -1;
}

.palette-box:nth-child(2) .palette-small {
display: flex;
flex-direction: column-reverse;
justify-content: space-between;
}

.palette-box:nth-child(2) .palette-small .color-1 ,
.palette-box:nth-child(2) .palette-small .color-4 {
align-self: flex-start;
}

.palette-box:nth-child(2) .palette-small .color-2,
.palette-box:nth-child(2) .palette-small .color-6 {
align-self: flex-end;
}

.palette-box:nth-child(3) .palette-small {
display: flex;
justify-content: space-between;
}

.palette-box:nth-child(3) .palette-small .part:nth-child(1),
.palette-box:nth-child(3) .palette-small .part:nth-child(2) {
display: flex;
flex-direction: column;
justify-content: space-between;
}

.palette-box:nth-child(4) .palette-small {
display: flex;
justify-content: space-between;
}

.palette-box:nth-child(4) .palette-small .part:nth-child(1) {
display: flex;
}

.palette-box:nth-child(4) .palette-small .part:nth-child(2) {
display: flex;
flex-direction: column;
justify-content: space-between;
}

.palette-box:nth-child(4) .palette-small .part:nth-child(2) .color-3 {
order: -1;
}

11/01/2023 два дня сидел, 47 строк

div {
display: flex;
justify-content: space-between;
}
.palette-box:nth-of-type(1) .palette-small {
flex-direction: column;
justify-content: center;
}
.color-2 {
order: 3;
}
.color-3 {
order: 1;
align-self: center;
}
.palette-box:nth-of-type(1) .palette-small .color-4 {
order: 4;
align-self: center;
}
.color-5 {
order: 2;
}
.palette-box:nth-of-type(2) .palette-small {
flex-direction: column;
}
.color-1 {
order: 1;
align-self: flex-start;
}
.palette-box:nth-of-type(2) .palette-small .color-2 {
order: 4;
align-self: flex-end;
}
.palette-box:nth-of-type(2) .palette-small .color-4 {
order: 2;
align-self: flex-start;
}
.color-6 {
order: 3;
align-self: flex-end;
}
.palette-box:nth-of-type(3) .palette-small .part:nth-of-type(1) {
flex-direction: column;
}
.palette-box .palette-small .part:nth-of-type(2) {
flex-direction: column;
}

Думал, не получится ))

.palette-box:first-child .palette-small {
display: flex;
flex-direction: column;
justify-content: center;
}

.palette-box:first-child .palette-small .color-3 {
order: -3;
align-self: center;
}
.palette-box:first-child .palette-small .color-5 {
order: -2;
}
.palette-box:first-child .palette-small .color-4 {
order: 0;
align-self: center;
}

.palette-box:nth-child(2) .palette-small {
display: flex;
justify-content: space-between;
flex-direction: column-reverse;
}
.palette-box:nth-child(2) .palette-small {
align-items: flex-start;
}
.palette-box:nth-child(2) .palette-small .color-2 {
align-self: flex-end;
}
.palette-box:nth-child(2) .palette-small .color-6 {
align-self: flex-end;
}

.palette-box:nth-child(3) .palette-small {
display: flex;
justify-content: space-between;
}

.palette-box:nth-child(3) .palette-small .part:first-child {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-end;
}

.palette-box:nth-child(3) .palette-small .part:last-child {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-end;
}
.palette-box:nth-child(4) .palette-small {
display: flex;
justify-content: space-between;
}

.palette-box:nth-child(4) .palette-small .part:first-child {
display: flex;
flex-direction: row;
justify-content: space-between;
}

.palette-box:nth-child(4) .palette-small .part:last-child {
display: flex;
flex-direction: column;
justify-content: space-between;
}

.palette-box:nth-child(4) .palette-small .part:last-child .color-2 {
order: 1;
}