CSS поворот.

Поворот элемента, используя только CSS, поддерживают уже многие браузеры:
  1. Matrix Filter (Internet Explorer)
  2. -webkit-transform (Safari | Chrome)
  3. -moz-transform (Firefox)
  4. -o-transform (Opera)

Мы рассмотрим на примере смайликов, как его осуществить. Для этого создадим класс для SPAN:
span.smile.right {
-webkit-transform: rotate(-90deg); /* Chrome y Safari */
-moz-transform: rotate(-90deg); /* Firefox */
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); /* Internet Explorer */
-o-transform: rotate(-90deg); /* Opera */
display: inline-block; padding-left: 8px; vertical-align: text-top; text-indent: 0px;}
И добавим теперь на веб-страницу:
<span class="smile right">(:</span>
Что мы видим: (: перемещается в горизонтальное положение(:
Здорово, не так ли? -90deg означает поворот на 90%. У IE свои значения.

Теперь посмотрим как повернуть
блок DIV на 45 градусов
в одном направлении:
Среди множества поворотных точек некоторые ведут к исходной.
Славомир Врублевский.
.povorot45 {
  -moz-transform: rotate(45deg);  /* Firefox */
  -o-transform: rotate(45deg);  /* Opera */
  -webkit-transform: rotate(45deg);  /* Safari y Chrome */
  filter: progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand', M11=0.7071067811865476, M12=-0.7071067811865475, M21=0.7071067811865475, M22=0.7071067811865476); /* IE */
}

<div class="povorot45"> ....... </div>
Для поворота в обратную сторону задаём
отрицательные значения:
На поворотах истории всегда кого-то заносит.
Александр Минченков
.povorot45 {
  -moz-transform: rotate(-45deg);  /* Firefox */
  -o-transform: rotate(-45deg);  /* Opera */
  -webkit-transform: rotate(-45deg);  /* Safari y Chrome */
  filter: progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand', M11=0.7071067811865476, M12=0.7071067811865475, M21=-0.7071067811865475, M22=0.7071067811865476); /* IE */
}
Также возможно осуществить динамическое изменение элемента. Для этого создадим ещё один класс.
Для горизонтального вращения:

.povorotG { /* любые значения */ }
.povorotG:hover {
-moz-transform: scaleX(-1); /* Firefox */
-o-transform: scaleX(-1); /* Opera */
-webkit-transform: scaleX(-1); /* Chrome y Safari */
transform: scaleX(-1); /* w3org */
filter: FlipH; /* Internet Explorer */
}

Для вертикального вращения:

.povorotV { /* любые значения */ }
.povorotV:hover {
-moz-transform: scaleY(-1); /* Firefox */
-o-transform: scaleY(-1); /* Opera */
-webkit-transform: scaleY(-1); /* Chrome y Safari */
transform: scaleY(-1); /* w3org */
filter: FlipV; /* Internet Explorer */
}
Теперь в необходимом месте на HTML-странице для изо указываем:
<img class="povorotG" src="адрес_изображения" />
Либо для блока:
<div class="povorotG"> Гори, печурка, — круче пирог! </div>
Аналогично с povorotV.
СтрелкаСтрелка
Гори, печурка, — круче пирог!
в f t
наверх ↑

8 комментариев:

Алексей Куликов
А куда этот код вставлять!? Как то, эта статья от профессионала к профессионалу!
NMitra
Есть немного. Это не сложно и если будите пробовать быстро разберётесь.

В фигурных скобках указан стиль CSS, его на платформе Blogger мы добавляем в "Дизайн"-"Изменить HTML" перед ]]></b:skin>. Например, span.smile.right {...}.

Вторую часть кода добавляем на вкладке "Изменить HTML" при публикации сообщения после какой-то части текста. Например, <span class="smile right">:)</span>
Анонимный
povorotG:hover в вашем случае это не вращение, а отражение
NMitra
Вращение написала, потому что элемент возвращается в исходное состояние, но в целом вы правы.
Юра Антипин
Спасибо за чудный пример) помог разобраться) просто и понятно, если конечно уже разбираешься в кроссбраузерном css отчасти
Александр Яковлев
Привет!
Что то я никак не въеду как рассчитать угол поворота для IE. Мне допустим нао воернуть всего на 10 градусов
NMitra
Привет, я где-то на сайте http://msdn.microsoft.com видела калькулятор. Сейчас уже не вспомню. IE transform уже тоже понимает даже без префиксов. Конечно, только новые его версии, которые уже не поддерживают filter: progid:DXImageTransform.Microsoft.Matrix.
NMitra
Попробуйте так

-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=1.4772116295183118, M12=-0.2604722665003969, M21=0.2604722665003969, M22=1.4772116295183118, SizingMethod='auto expand')";