Подход к вопросу огонь. Но. Как по мне, тут js не шибко и нужен. +- хватит танцев с бубном на css, путем осознания того, что в общем информация статична, и высчитывать шибко и нечего. Ну и немного абсолютного позиционирования и хаков.
Но если действительно стоит необходимость сделать, так сказать, умную сетку, то можно перебирать их всех после полной загрузки DOM, или же еще лучше, индивидуально в момент hover. К слову, jQuery можно... В общем чистый JS нынче в треде, как говорится. Итак, ближе к конкретике:
- Спаси и сохрани размер обертки карточки, назовем ее ячейкой
- Задай самой карточке абсолютное позиционирование относительно ячейки
- Задисплей через прозрачность (к примеру) дополнительные элементы
- Рассчитай их размеры и, как в примере на дверях, высчитай отступ наверх
Ну и главное, проверь, чтобы у ячейки не стял overflow:hidden. Бо плохо будет.
З.Ы.: кроме морды из примера я ничего не увидел. Ну и пункты могут варьироваться.