Наконец, после того, как обернул голову в течение 2 дней, я нашел решение.
Идея состоит в том, чтобы центрировать элемент, не используя translate3d(-50%, -50%, 0);
и сохраняя только преобразование rotate
.
Итак, я использую flex (думаю, что grid тоже подойдет)
.parent {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
}
.child {
transform: rotate(14deg);
}
https://codepen.io/alexcondur/pen/ROaVMe
Если родительский элемент элемента будет меньше дочерних, я бы использовал margin для позиционирования моего дочернего элемента по центру. Например:
.parent {
width: 100px;
height: 100px;
}
.child {
width: 200px;
height: 350px;
margin: -175px 0 0 -100px;
transform: rotate(14deg);
}