CSS3 — Эффект вращения
Как сделать эффект вращения на CSS3
Для того, чтобы наглядно увидеть в действии эффект вращения на CSS3, наведите на красный квадрат мышью (или удерживайте пальцем на мобильном устройстве) и красный квадрат должен начать вращение.
Файл index.html
Итак, приступим. Создайте у себя на компьютере файл с названием index.html и напишите следующий код:
В файле index.html мы сделали стандартную html разметку и в body создали div с классом rotate. Также мы подключили между тегами head файл style.css.
Давайте зададим ему стили, для того, чтобы применить к нему эффект вращения.
Файл style.css
Создайте файл style.css и вставьте в него следующий текст:
Для красоты мы добавили CSS3 фильтр grayscale, делающий наш div черно-белый. О фильтрах css мы поговорим в следующих статьях.
Для совместимости с другими браузерами, мы добавили -webkit-transform, ms-transition и ms-transform.
Результат
Наведите курсор мыши на красный квадрат(или коснитесь пальцем в мобильном устройстве) и посмотрите результат.
Видеоурок: Как сделать эффект вращения на CSS3
В этом видеоуроке, мы писали код в редакторе SublimeText3 с плагином Emmet. Подробнее об этом замечательном редакторе и плагине Emmet вы можете прочитать в нашей статье: Sublime Text 3 — удобный редактор кода для веб-разработчиков
Вступайте в нашу группу VK и следите за новыми статьями.
Читайте также
Что такое NodeJS и npm?
XAMPP — как установить и настроить на Mac (Mojave, Sierra)
Как самостоятельно изучить веб-программирование
Взломали Cкайп, что делать?
Что такое реферальный спам в Google Analytics
Постраничная ленивая загрузка (lazy load) постов
Как стать профессиональным веб-разработчиком
Методы setTimeout и setInterval в Javascript
Реализация Lazy Load на Jquery
Три полезных CSS свойства для работы с изображениями
Массивы в Javascript
Что такое TypeScript
Sublime Text 3 — удобный редактор кода для веб-разработчиков
Установка и настройка веб-сервера для сайта в Ubuntu
Полезные приложения для веб-разработчиков в Google Chrome
Модальное окно на Jquery
GIT команды: Быстрый старт для новичков
Что такое конструктор в объектно-ориентированном программировании
Что такое объектно-ориентированное программирование
Как отправить форму без перезагрузки страницы (AJAX)
Как быстро создать сайт и привлечь поисковый трафик
Bitbucket: Крутой облачный GIT репозиторий
Javascript: Классы в Javascript
Что такое веб-хостинг и как выбрать хостинг для сайта
SQL запросы: Основы администрирования MySQL
Команды Linux: оболочка BASH
Joomla CMS: Преимущества и недостатки
Качественный сайт: семь ключевых свойств
Все материалы с сайта wh-db. com и ru.wh-db.com защищены авторским правом. Копирование, публикация, продажа и распространение материала строго запрещены.
Please enable JavaScript to view the comments powered by Disqus.
Свойство CSS rotate позволяет задавать преобразования поворота индивидуально и независимо от An , указывающего элемент, на который нужно повернуть.
Свойство CSS rotate
позволяет указывать преобразования поворота индивидуально и независимо от свойства transform
. Это лучше соответствует типичному использованию пользовательского интерфейса и избавляет от необходимости помнить точный порядок функций преобразования, указываемых в свойстве transform
.
Syntax
/ * Значения ключевых слов * / rotate: none; / * Значение угла * / rotate: 90deg; rotate: 0.25turn; rotate: 1.57rad; / * имя оси x, y или z плюс угол * / rotate: x 90deg; rotate: y 0.25turn; rotate: z 1.57rad; / * Вектор плюс значение угла * / rotate: 1 1 1 90deg; / * Глобальные значения * / rotate: inherit; rotate: initial; rotate: revert; rotate: revert-layer; rotate: unset;
Values
- angle value
<angle>
задать угол , чтобы повернуть пораженный элемент через, вокруг оси Z.rotate()
(2D вращение).- название оси x,y или z плюс значение угла
Имя оси, вокруг которой вы хотите повернуть соответствующий элемент (
"x"
, «y
» или «z"
), а также<angle>
, указывающий угол, на который необходимо повернуть элемент. Эквивалент функцииrotateX()
/rotateY()
/rotateZ()
(вращение 3D).- вектор плюс угловое значение
Три
<number>
представляющие вектор, ориентированный на начало координат, который определяет линию, вокруг которой вы хотите повернуть элемент, плюс<angle>
указывающий угол, на который нужно повернуть элемент. Эквивалент функцииrotate3d()
(вращение 3D).none
Указывает,что вращение не должно применяться.
Formal definition
Initial value | none |
---|---|
Applies to | transformable elements |
Inherited | no |
Computed value | as specified |
Animation type | a transform |
Создает стековый контекст | yes |
Formal syntax
rotate = none | <angle> | [ x | y | z | <number>{3} ] && <angle>
Examples
Поворот элемента при наведении
HTML
<div> <p>Rotation</p> </div>
CSS
* { box-sizing: border-box; } html { font-family: sans-serif; } div { width: 150px; margin: 0 auto; } p { padding: 10px 5px; border: 3px solid black; border-radius: 20px; width: 150px; font-size: 1.2rem; text-align: center; } .rotate { transition: rotate 1s; } div:hover .rotate { rotate: 1 -0.5 1 180deg; }
Result
Specifications
Specification |
---|
CSS Transforms Module Уровень 2 # индивидуальные преобразования |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | |
rotate | 104 | 104 | 72 | No | 90 | 14.1 | 104 | 104 | 79 | No | 14.5 | No |
x_y_z_angle | 104 | 104 | 72 | No | 90 | No | 104 | 104 | 79 | No | No | No |
See also
translate
scale
transform
Примечание: skew
не является независимым значением transform
© 2005–2022 Авторы MDN.

Лицензия Creative Commons Attribution-ShareAlike License v2.5 или более поздняя.
https://developer.mozilla.org/en-US/docs/Web/CSS/rotate
- 1
- …
- 728
- 729
- 730
- 731
- 732
- …
- 865
- Next
поворот — CSS: Каскадные таблицы стилей
CSS-свойство rotate
позволяет задавать преобразования поворота индивидуально и независимо от свойства преобразования
. Это лучше соответствует типичному использованию пользовательского интерфейса и избавляет от необходимости запоминать точный порядок функций преобразования, которые необходимо указать в свойстве
преобразования
.
/* Значения ключевых слов */ вращать: нет; /* Значение угла */ поворот: 90 градусов; повернуть: 0,25 оборота; вращение: 1,57 рад; /* имя оси x, y или z плюс угол */ повернуть: х 90 градусов; повернуть: y 0,25 оборота; повернуть: z 1,57 рад; /* Вектор плюс значение угла */ повернуть: 1 1 1 90 градусов; /* Глобальные значения */ повернуть: наследовать; повернуть: начальный; повернуть: вернуться; повернуть: вернуть слой; повернуть: не установлено;
Значения
- Значение угла
<угол>
, указывающий угол поворота затронутого элемента вокруг оси Z. Эквивалент функцииrotate()
(2D-вращение).- Имя оси x, y или z плюс значение угла
Имя оси, вокруг которой вы хотите повернуть затронутый элемент (
, « "x"y
» или «z"
), плюс<угол>
, указывающий угол поворота элемента.. Эквивалент функции
rotateX()
/rotateY()
/rotateZ()
(трехмерное вращение).- вектор плюс значение угла
Три
<угол>
, указывающий угол поворота элемента. Эквивалент функцииrotate3d()
(трехмерное вращение).-
нет
Указывает, что поворот не применяется.
повернуть =
нет |
<угол> |
[ х | у | г | <число>{3} ] && <угол>
Поворот элемента при наведении
HTML
Вращение
CSS
* { box-sizing: граница-коробка; } HTML { семейство шрифтов: без засечек; } дел { ширина: 150 пикселей; поле: 0 авто; } п { отступ: 10px 5px; граница: 3 пикселя, сплошной черный цвет; радиус границы: 20px; ширина: 150 пикселей; размер шрифта: 1.2rem; выравнивание текста: по центру; } .повернуть { переход: повернуть 1с; } div: наведите курсор .rotate { повернуть: 1 -0,5 1 180 градусов; }
Результат
Спецификация |
---|
Уровень модуля преобразования CSS 2 # индивидуальные преобразования |
Таблицы BCD загружаются только в браузере
с включенным JavaScript. Включите JavaScript для просмотра данных.-
перевод
-
шкала
-
трансформировать
Примечание: перекос
не является независимым преобразование
значение
Последнее изменение: , авторы MDN
CSS Transform мертв?
CSS добавляет множество новых функций, а некоторые из небольших функций качества жизни, которые они добавили недавно, — это добавление свойств translate
, rotate
и scale
. Эти свойства почти полностью устраняют необходимость использования свойства
transform
, что невероятно приятно, поскольку это открывает массу возможностей, которые раньше были очень трудными, если не невозможными.
В этой статье я расскажу, как работает каждое из этих трех свойств (это не так просто, как вы думаете), а также в конце объясню, почему это так важно.
Если вы предпочитаете учиться визуально, посмотрите видеоверсию этой статьи.
Новые свойства
Прежде чем я перейду к тому, почему я так взволнован этим изменением, нам нужно поговорить о том, как работают эти новые свойства. По большей части они работают так же, как rotate()
, scale()
и translate()
с несколькими оговорками.
Если вы не знакомы со всеми нюансами свойства transform
, ознакомьтесь с моим Ultimate CSS Transform Guide, прежде чем читать дальше.
масштаб
Начнем с самого простого из трех новых свойств масштаб
. Это свойство работает точно так же, как функция scale() .
Если вы передадите одно значение scale
работает так же, как функция scale()
, масштабируя элемент в направлениях X и Y на заданное значение. В приведенном выше сценарии размер элемента увеличится на 50%.
Если вы передадите два значения в scale
, оно все равно будет работать так же, как функция scale()
, масштабируя направление X на первое значение, а направление Y на второе значение. Этот пример будет на 50% больше по оси X и вдвое меньше по оси Y.
Если вы передаете три значения в scale
, оно работает так же, как функция scale3d()
, масштабируя направление X на первое значение, направление Y на второе значение и направление Z на последнее значение.
translate
Далее следует свойство translate
, которое по большей части работает точно так же, как функция translate()
.
Если вы передадите одно значение в , транслируйте
, оно будет работать так же, как translate()
, перемещая элемент в направлении X на заданное значение. В приведенном выше сценарии элемент сдвинется на 50 пикселей вправо.
Если вы передадите два значения в translate
, оно все равно будет работать так же, как функция translate()
, перемещая элемент в направлении X на первое значение и в направлении Y на второе значение. Этот пример будет перемещен на 50 пикселей вправо и на 100 пикселей вниз.
Если вы передадите три значения в , переведите
работает так же, как функция translate3d() , перемещая элемент в направлении X на первое значение, в направлении Y на второе значение и в направлении Z на последнее значение.
rotate
Здесь все становится немного более запутанным. rotate
в основном работает как функция rotate()
, но с некоторыми оговорками.
Если вы передадите одно значение в rotate
, оно будет работать так же, как rotate()
, вращая элемент вокруг оси Z на заданное значение. В приведенном выше сценарии элемент повернется на 45 градусов.
Если вы хотите повернуть элемент вокруг оси, отличной от оси Z, вам нужно будет передать ось в качестве первого значения для поворота
, а затем передать угол в качестве второго значения. Это будет работать так же, как функции rotateX()
, rotateY()
и rotateZ()
в зависимости от того, какую ось вы используете.
Наконец, если вы хотите выполнить трехмерное вращение на основе матрицы, вам нужно передать 4 значения в повернуть
. Это работает точно так же, как функция rotate3d() , где первые 3 значения представляют, какой угол поворота применяется к каждой оси (X, Y, Z), а четвертое значение представляет собой применяемый угол. В нашем примере у элемента не будет поворота по оси X, 90 градусов поворота по оси Y и 135 градусов поворота по оси Z.
Почему это важно?
Может показаться, что CSS просто добавляет новые способы делать то, что мы уже могли делать, что частично верно, но этот синтаксис на самом деле открывает новые возможности, которые раньше были очень трудными, если не невозможными.
Вышеприведенный код кажется очень простым кодом, который позволяет сжимать, перемещать и поворачивать прямоугольник, но этот код не будет работать так, как вы ожидаете. Если вы примените только один из маленьких
, перемещенных
или повернутых
классов к блоку, он будет работать, как и ожидалось, но как только вы добавите более одного из этих классов, он сломается. Причина этого в том, что все они используют свойство преобразования
, поэтому CSS будет использовать только наиболее конкретную версию преобразования 9.0005, что означает, что в нашем случае класс, определенный последним в нашем файле CSS, перезапишет предыдущие классы. Если в нашем блоке классы
класса перемещены на
и повернуты на
, то он будет повернут только на 45 градусов и не будет перемещен, поскольку преобразование , перемещенное
, класс , преобразование
перезаписывается преобразованием класса , повернутым ,
, классом , преобразованием
.
Есть несколько способов обойти эту проблему.
Если мы переключимся на использование переменных CSS, мы сможем обойти эту проблему, но код немного неуклюж, так как мы должны задать значения по умолчанию для всех переменных в нашем базовом классе, и он просто не так чист, как я хотел бы. Раньше это был единственный способ решить эту проблему.
С введением этих новых свойств CSS мы можем просто определить наши rotate
, translate
и scale
как отдельные свойства, что означает, что наш scale
никогда не заменит/не перезапишет наш translate
. Это делает написание кода с несколькими преобразованиями намного проще и чище.
Это не единственная причина, по которой это так здорово.
Приведенный выше код очень похож на нашу версию переменной CSS, где мы хотим написать преобразование, состоящее из нескольких частей, которые могут изменяться независимо друг от друга. Может показаться, что это должно работать, но пользовательские свойства CSS нельзя анимировать. Вместо этого эта анимация будет просто прыгать между 0 и 45 градусами без анимации вообще. Технически, с введением CSS Houdini вы можете обойти это, но код намного сложнее, а у Houdini очень плохая поддержка браузеров.
Эта проблема тривиальна для наших новых свойств CSS. Поскольку rotate
— это просто обычное свойство CSS, вы можете анимировать его, как и любое другое свойство, и оно будет работать. Это делает создание такого кода возможным и очень простым.
Поддержка браузера
С каждой интересной функцией CSS вы всегда должны учитывать поддержку браузера, но, к счастью, браузер поддерживает эти новые свойства достаточно хорошо. В настоящее время их 79Поддержка 0,6%, при этом большая часть отсутствующей поддержки приходится на более старые версии Chrome. Причина этого в том, что эта функция была запущена только в начале августа 2022 года, поэтому люди все еще находятся в процессе обновления Chrome до последних версий. Всего через несколько месяцев эта функция будет выше 90%, и ее можно будет использовать практически на любом сайте.