Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как повернуть элемент

Короткий ответ

Свойство rotate поворачивает элемент на заданный угол:

<div style="display: flex; gap: 24px; padding: 20px;">
  <div style="width: 60px; height: 60px; background: gold; rotate: 15deg;"></div>
  <div style="width: 60px; height: 60px; background: tomato; rotate: -45deg;"></div>
</div>

Положительный угол — по часовой стрелке. Можно писать deg (градусы) или turn (обороты): 0.5turn — это 180 градусов.

Точка вращения

По умолчанию элемент вращается вокруг центра. transform-origin переносит ось — например, в левый верхний угол:

<div style="padding: 10px 40px;">
  <div style="width: 80px; height: 40px; background: lightseagreen; rotate: 20deg; transform-origin: top left;"></div>
</div>

Поворот при наведении

Стрелка, которая разворачивается при наведении:

<style>
  .more { display: inline-flex; gap: 6px; cursor: pointer; }
  .more span { display: inline-block; transition: rotate 0.3s; }
  .more:hover span { rotate: 180deg; }
</style>
 
<div class="more">Show more <span>▼</span></div>

Частая ошибка

Поворот не работает у строчного элемента, например у span внутри текста: трансформации применяются только к блочным и строчно-блочным элементам. Добавьте display: inline-block, как в последнем примере. И помните, что повёрнутый элемент не сдвигает соседей — он может налезть на них.

Функции из этого ответа

  • transform — Сдвигает, поворачивает, масштабирует или наклоняет элемент, не влияя на раскладку вокруг.
  • translate, rotate, scale — Отдельные свойства для сдвига, поворота и масштаба — вместо функций в `transform`.
  • transition — Плавно анимирует изменение свойства от старого значения к новому.
  • animation — Запускает на элементе анимацию из `@keyframes`.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.