Комментарий #12304027

Hayart
@Velyn, в списках – да, можешь.
Для начала нужно изменить поведение элементов в списках: в табличной и в плиточной форме. Это мой готовый вариант, но он что-то изменяет в заголовках таблицы. Что именно? Сейчас не вспомню.
/* Списки */
.list-posters {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 2px;
    justify-content: space-between;
}
.c-column.user_rate {
	margin: 0px 0px;
}

.list-groups .b-table.list-lines thead {
    display: none;
}

.list-groups .b-table.list-lines tbody.entries {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.list-groups .b-table.list-lines tbody.entries tr {
    display: flex;
}

.list-groups .b-table.list-lines tbody.entries tr td.name {
    flex-grow: 1;
}

.list-groups .b-table.list-lines tbody.entries tr td.num{
    width: 60px;
    max-width: 60px;
    min-width: 60px;
}

.list-groups .b-table.list-lines tbody.entries tr td.index{
    width: 30px;
    max-width: 30px;
    min-width: 30px;
}

Дальше идет сортировка. К примеру, у меня оценка выставлена в комментарии тайтла (посмотри мои списки) + прописан следующий css-код:
/* ОЦЕНКИ */
.c-column.user_rate[data-text*='0.1'], .list-groups .b-table.list-lines tbody.entries tr[data-text*='0.1'] {
    order: -1;
}
.c-column.user_rate[data-text*='0.2'], .list-groups .b-table.list-lines tbody.entries tr[data-text*='0.2'] {
    order: -2;
}
и так далее до 10.0
.c-column.user_rate[data-text*='10.0'], .list-groups .b-table.list-lines tbody.entries tr[data-text*='10.0'] {
    order: -100;
}

В твоем случае, вместо чисел/оценок в комментариях пишешь "masterpiece/good/mid/low" и для каждого из них пишешь строку в css:
/* ОЦЕНКИ */
.c-column.user_rate[data-text*='masterpiece'], .list-groups .b-table.list-lines tbody.entries tr[data-text*='masterpiece'] {
    order: -100;
}
.c-column.user_rate[data-text*='good'], .list-groups .b-table.list-lines tbody.entries tr[data-text*='good'] {
    order: -80;
}
.c-column.user_rate[data-text*='mid'], .list-groups .b-table.list-lines tbody.entries tr[data-text*='mid'] {
    order: -60;
}
.c-column.user_rate[data-text*='low'], .list-groups .b-table.list-lines tbody.entries tr[data-text*='low'] {
    order: -40;
}
Значения order (-100, -80, -60, -40) взяты с потолка, но есть правило: чем меньше значение order, тем он встретиться первее. Поэтому эти отрицательные значения игнорируют изначальную сортировку по оценке, ибо у order по умолчанию положительный.

Это все. Из багов замечено, что в плиточной форме нужно прогрузить все элементы (пролистать страницу до конца), иначе из-за того, что в плиточной форме элементы загружаются поочередно при пролистовании странице вниз, некоторые элементы из-за оценки "пролетают" вверх, отчего кажется по первой, что их не существует. В табличной форме такой проблемы нет – там все элементы загружены разом.
Ответы

Нет комментариев

назад
Твой комментарий
Вернуться к редактированию
Предпросмотр
Скрыть