Месяц назад решил сделать сабж без JS, на одном только CSS.
Использовал этот метод:
.element {
position: relative;
top: 50%;
transform: translateY(-50%);
}
Получилось плохо. Всё хорошо, пока я не добавляю вертикальный margin.
И ещё если утянуть элемент списка курсором, то он утянется из своего места до применения фильтра. Как-то это неправильно.