Значение | Описание |
---|---|
none | Указывает, что к элементу не применяется никакой трансформации. Это значение по умолчанию. |
matrix(n,n,n,n,n,n) | Определяет двухмерное преобразование с помощью матрицы из шести значений. Подробное описание функции вы можете получить здесь(на русском), либо в оригинале — разделы 20 и 21. |
matrix3d (n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) | Определяет трехмерное преобразование с помощью матрицы 4×4 из шестнадцати значений в порядке столбцов. Все другие трехмерные функции преобразований основаны на функции matrix3d. Подробное описание функции вы можете получить здесь(на русском), либо в оригинале — разделы 20 и 21. |
translate(x,y) | Определяет двухмерное преобразование путем сдвига элемента влево, вправо, вверх или вниз, используя координаты по оси x и y(отрицательные значения отвечают за сдвиг влево и вверх, положительные за сдвиг вправо и вниз). Элемент, к которому применяется сдвиг не влияет на поток документа. |
translate3d(x,y,z) | Задает трехмерное преобразование путем сдвига элемента, используя координаты трёх осей. |
translateX(x) | Определяет двухмерное преобразование путем сдвига элемента, используя только значение по оси x. |
translateY(y) | Определяет двухмерное преобразование путем сдвига элемента, используя только значение по оси y. |
translateZ(z) | Определяет трехмерное преобразование путем сдвига элемента, используя только значение по оси z. |
scale(x,y) | Определяет двухмерное преобразование путем масштабирования элемента по оси x и по оси y. Допускается использование одного значения, в этом случае элемент масштабируется с указанным значением как по оси x, так и по оси y. К примеру, значение scale(0.5) уменьшит элемент в 2 раза (как по оси x, так и по y). Другими словами, значения больше одного при масштабировании увеличивают элемент, меньше одного — уменьшают. При использовании отрицательных значений элемент отображается зеркально. Масштабируемый элемент увеличивается, либо уменьшается относительно своего центра (допускается изменить исходную точку преобразования, установленную по умолчанию, задействовав свойство transform-origin). |
scale3d(x,y,z) | Определяет трехмерное преобразование путем масштабирования элемента по оси x, y и по оси z. |
scaleX(x) | Определяет двухмерное преобразование путем масштабирования элемента, используя только значение по оси x. |
scaleY(y) | Определяет двухмерное преобразование путем масштабирования элемента, используя только значение по оси y. |
scaleZ(z) | Определяет трехмерное преобразование путем масштабирования элемента, используя только значение по оси z. |
rotate(angle) | Задает двухмерный поворот по часовой стрелке, либо против часовой стрелки при использовании отрицательных значений. Элемент поворачивается относительно своего центра (допускается изменить исходную точку преобразования, установленную по умолчанию, задействовав свойство transform-origin).
|
rotate3d(x,y,z,angle) | Задает трехмерный поворот по часовой с |
Значение по умолчанию: | none |
---|---|
Применяется: | к трансформируемым элементам |
Анимируется: | да |
Наследуется: | нет |
Версия: | CSS3 |
Синтаксис JavaScript: | object.style.transform=»rotate(7deg)» |
Значение | Описание |
none | Преобразование не применяется. |
matrix(n,n,n,n,n,n) | Применяет 2D преобразование с помощью матрицы из шести значений. |
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) | Применяет 3D преобразование с помощью матрицы из шестнадцати(4х4) значений. |
translate(x,y) | Функция translate позволяет перемещать элементы влево, вправо, вверх или вниз. Эта функция аналогична поведению position: relative; При использовании этой функции, можно сдвигать элементы не влияя на поток документа. |
translate3d(x,y,z) | Применяет 3D смещение. |
translateX(x) | Определяет смещение, только по оси Х. |
translateY(y) | Определяет смещение, только по оси У. |
translateZ(z) | Определяет 3D смещение, только по оси Z. |
scale(x,y) | Функция scale(x,y) масштабирует элемент горизонтально и вертикально. Если указано только одно значение, оно будет использовано сразу и для горизонтального масштабирования и для вертикального. Например, scale(1) оставит элемент такого же размера, scale(2) удвоит его пропорции, scale(0.5) уменьшит элемент в 2 раза и так далее. Предоставление различных значений будет искажать элемент. Масштабируемый элемент будет увеличиваться от своего центра или уменьшаться к нему, другими словами центр элемента будет всегда находится в одной и той же точке, не зависимо от его размера. Таково поведение элемента по умолчанию, чтобы изменить это можно воспользоваться свойством transform-origin. |
scale3d(x,y,z) | Применяет 3D преобразование масштаба. |
scaleX(x) | Определяет преобразование масштаба по оси Х. |
scaleY(y) | Определяет преобразование масштаба по оси У. |
scaleZ(z) | Определяет 3D преобразование масштаба по оси Z. |
rotate(angle) | Функция rotate() поворачивает элемент вокруг точки происхождения по заданному значению угла. Как и в случае с функцией scale(), по умолчанию точка происхождения — это центр элемента. |
rotate3d(x,y,z,angle) | Определяет 3D поворот. |
rotateX(angle) | Определяет 3D поворот вдоль оси Х. |
rotateY(angle) | Определяет 3D поворот вдоль оси У. |
rotateZ(angle) | Определяет 3D поворот вдоль оси Z. |
skew(x, y) | Функция skew(x, y) определяет наклон по осям X и Y. Как и следовало ожидать, x определяет наклон оси X,а y определяет наклон оси Y. Если второй параметр опущен, то перекос элемента произойдёт только по оси X. |
skewX(angle) | Определяет 2D преобразование наклона вдоль оси Х. |
skewY(angle) | Определяет 2D преобразование наклона вдоль оси У. |
perspective(n) | Определяет перспективу для преобразования 3D элемента. |
inherit | Указывает, что значение наследуется от родительского элемента. |
Свойство transform-style | CSS справочник
CSS свойстваОпределение и применение
CSS свойство transform-style определяет как вложенные (дочерние) элементы отображаются в трехмерном пространстве. По умолчанию все дочерние элементы отображаются плоскими в двухмерной плоскости (находятся в плоскости самого элемента), чтобы позволить вложенным (дочерним) элементам трансформироваться в их собственной трёхмерной плоскости необходимо использовать значение preserve-3d свойства transform-style.
Совместно со свойством transform-style используется свойство transform, которое применяет двухмерные или трехмерные трансформации к элементу (функции преобразования элемента).
Поддержка браузерами
Internet Explorer не поддерживает значение свойства preserve-3d.CSS синтаксис:
transform-style:"flat | preserve-3d | initial | inherit";
JavaScript синтаксис:
object.style.transformStyle = "preserve-3d"
Значения свойства
Значение | Описание |
---|---|
flat | Вложенные (дочерние) элементы отображаются плоскими в двухмерной плоскости (находятся в плоскости самого элемента). Это значение по умолчанию. |
preserve-3d | Вложенные (дочерние) элементы трансформируются в их собственной трёхмерной плоскости. |
initial | Устанавливает свойство в значение по умолчанию. |
inherit | Указывает, что значение наследуется от родительского элемента. |
Версия CSS
CSS3Наследуется
Нет.Анимируемое
Нет.Пример использования
<!DOCTYPE html> <html> <head> <title>Отображение дочерних элементов в трехмерном пространстве в CSS</title> <style> div { width : 200px; /* устанавливаем ширину блока */ height : 200px; /* устанавливаем высоту блока */ border: 1px solid white; /* устанавливаем сплошную границу размером 1 пиксель белого цвета */ } .static { display : inline-block; /* устанавливаем элементы <div> как блочно-строчные (выстраиваем в линейку) */ background: silver; /* устанавливаем цвет заднего фона */ margin : 50px; /* устанавливаем величину внешнего отступа для всех сторон элемента */ -webkit-perspective: 500px; /* для поддержки ранних версий браузеров */ -moz-perspective: 500px; /* для поддержки ранних версий браузеров */ perspective: 500px; /* определяет, на сколько пикселей удален трехмерный элемент от точки обзора */ } @-webkit-keyframes iliketomoveit { /* для поддержки ранних версий браузеров */ 100% { -moz-transform : rotateY(360deg); /* для поддержки ранних версий браузеров */ -webkit-transform : rotateY(360deg); /* для поддержки ранних версий браузеров */ -ms-transform : rotateY(360deg); /* для поддержки ранних версий браузеров */ transform : rotateY(360deg); /* двухмерное преобразование путем поворота элемента по часовой стрелке на 360 градусов */ } }@keyframes iliketomoveit { 100% { -moz-transform : rotateY(360deg); /* для поддержки ранних версий браузеров */ -webkit-transform : rotateY(360deg); /* для поддержки ранних версий браузеров */ -ms-transform : rotateY(360deg); /* для поддержки ранних версий браузеров */ transform : rotateY(360deg);/* двухмерное преобразование путем поворота элемента по часовой стрелке на 360 градусов */ } } .test { -webkit-animation : iliketomoveit 15s linear infinite; /* для поддержки ранних версий браузеров */ animation : iliketomoveit 15s linear infinite; /* имя анимации, указанное в ключевом кадре, длительность анимации, с одинаковой скоростью, бесконечно */ background : green; /* устанавливаем цвет заднего фона */ transform-style : flat; /* вложенные (дочерние) элементы отображаются плоскими в двухмерной плоскости(это значение по умолчанию) */ } .test2 { -webkit-animation : iliketomoveit 15s linear infinite; /* для поддержки ранних версий браузеров */ animation : iliketomoveit 15s linear infinite; /* имя анимации, указанное в ключевом кадре, длительность анимации, с одинаковой скоростью, бесконечно */ background : orange; /* ус
CSS3-переходы (свойство transition)
CSS3-переходы позволяют анимировать исходное значение CSS-свойства на новое значение с течением времени, управляя скоростью смены значений свойств. Большинство свойств меняют свои значения за 16 миллисекунд, поэтому рекомендуемое время стандартного перехода — 200ms.
Смена свойств происходит при наступлении определенного события, которое описывается соответствующим псевдоклассом. Чаще всего используется псевдокласс :hover. Данный псевдокласс не работает на мобильных устройствах, таких как iPhone или Android. Универсальным решением, работающим в настольных и мобильных браузерах, будет обработка событий с помощью JavaScript (например, переключение классов при клике).
Переходы применяются ко всем элементам, а также к псевдоэлементам :before и :after. Для задания всех свойств перехода обычно используют краткую запись свойства transition.
CSS3-переходы могут применяться не ко всем свойствам и их значениям. Подробный перечень вы найдёте на этой странице.
Создание плавных изменений свойств элементов
Поддержка браузерами
IE: 10.0
Firefox: 16.0, 4.0 -moz-
Chrome: 26.0, 4.0 -webkit-
Safari: 6.1, 3.1 -webkit-
Opera: 12.1, 11.6 -o-
iOS Safari: 7.1
Opera Mini: —
Android Browser: 4.4, 4.1 -webkit-
Chrome for Android: 44
1. Название свойства transition-property
Содержит название CSS-свойств, к которым будет применен эффект перехода. Значение свойства может содержать как одно свойство, так и список свойств через запятую. При создании перехода можно использовать как начальное, так и конечное состояние элемента. Свойство не наследуется.
Создаваемые эффекты должны быть ненавязчивыми. Не все свойства требуют плавного изменения во времени, что связано с пользовательским опытом. Например, при наведении на ссылку мы хотим видеть мгновенную смену цвета ссылки или цвета и стиля подчёркивания. Поэтому переходы следует использовать для тех свойств, к которым действительно нужно привлечь внимание.
transition-property | |
---|---|
Значения: | |
none | Отсутствие свойства для перехода. |
all | Значение по умолчанию. Применяет эффект перехода ко всем свойствам элемента. |
свойство | Определяет список CSS-свойств, перечисленных через запятую, участвующих в переходе. |
initial | Устанавливает значение свойства в значение по умолчанию. |
inherit | Наследует значение свойства от родительского элемента. |
Синтаксис
div {
width: 100px;
transition-property: width;
}
div:hover {
width: 300px;
}
2. Продолжительность перехода transition-duration
Задаёт промежуток времени, в течение которого должен осуществляться переход. Если разные свойства имеют разные значения для перехода, они указываются через запятую. Если продолжительность перехода не указана, то анимация при смене значений свойств происходить не будет. Свойство не наследуется.
transition-duration | |
---|---|
Значения: | |
время | Время перехода указывается в секундах или миллисекундах, например, 2s или 5ms. |
initial | Устанавливает значение свойства в значение по умолчанию. |
inherit | Наследует значение свойства от родительского элемента. |
Синтаксис
div {
transition-duration: .2s;
}
See the Pen LRpLbk by Elena (@html5book) on CodePen.
3. Функция перехода transition-timing-function
Свойство задаёт временную функцию, которая описывает скорость перехода объекта от одного значения к другому. Если вы определяете более одного перехода для элемент, например, цвет фона элемента и его положение, вы можете использовать разные функции для каждого свойства. Свойство не наследуется.
transition-timing-function | |
---|---|
Значения: | |
ease | Функция по умолчанию, переход начинается медленно, разгоняется быстро и замедляется в конце. Соответствует cubic-bezier(0.25,0.1,0.25,1). |
linear | Переход происходит равномерно на протяжении всего времени, без колебаний в скорости. Соответствует cubic-bezier(0,0,1,1). |
ease-in | Переход начинается медленно, а затем плавно ускоряется в конце. Соответствует cubic-bezier(0.42,0,1,1). |
ease-out | Переход начинается быстро и плавно замедляется в конце. Соответствует cubic-bezier(0,0,0.58,1). |
ease-in-out | Переход медленно начинается и медленно заканчивается. Соответствует cubic-bezier(0.42,0,0.58,1). |
cubic-bezier(x1, y1, x2, y2) | Позволяет вручную установить значения от 0 до 1 для кривой ускорения. На этом сайте вы сможете построить любую траекторию перехода. |
initial | Устанавливает значение свойства в значение по умолчанию. |
inherit | Наследует значение свойства от родительского элемента. |
Синтаксис
div {
transition-timing-function: linear;
}
See the Pen CSS Timing Function by Elena Nazarova (@nazarelen) on CodePen.
Для создания более реалистичных анимаций используйте функцию cubic Bézier:
Рис. 1. Пользовательские функции cubic Bézier с сайта easings.netПользовательское название | Значение функции |
---|---|
easeInSine | cubic-bezier(0.47, 0, 0.745, 0.715) |
easeOutSine | cubic-bezier(0.39, 0.575, 0.565, 1) |
easeInOutSine | cubic-bezier(0.445, 0.05, 0.55, 0.95) |
easeInQuad | cubic-bezier(0.55, 0.085, 0.68, 0.53) |
easeOutQuad | cubic-bezier(0.25, 0.46, 0.45, 0.94) |
easeInOutQuad | cubic-bezier(0.455, 0.03, 0.515, 0.955) |
easeInCubic | cubic-bezier(0.55, 0.055, 0.675, 0.19) |
easeOutCubic | cubic-bezier(0.215, 0.61, 0.355, 1) |
easeInOutCubic | cubic-bezier(0.645, 0.045, 0.355, 1) |
easeInQuart | cubic-bezier(0.895, 0.03, 0.685, 0.22) |
easeOutQuart | cubic-bezier(0.165, 0.84, 0.44, 1) |
easeInOutQuart | cubic-bezier(0.77, 0, 0.175, 1) |
easeInQuint | cubic-bezier(0.755, 0.05, 0.855, 0.06) |
easeOutQuint | cubic-bezier(0.23, 1, 0.32, 1) |
easeInOutQuint | cubic-bezier(0.86, 0, 0.07, 1) |
easeInExpo | cubic-bezier(0.95, 0.05, 0.795, 0.035) |
easeOutExpo | cubic-bezier(0.19, 1, 0.22, 1) |
easeInOutExpo | cubic-bezier(1, 0, 0, 1) |
easeInCirc | cubic-bezier(0.6, 0.04, 0.98, 0.335) |
easeOutCirc | cubic-bezier(0.075, 0.82, 0.165, 1) |
easeInOutCirc | cubic-bezier(0.785, 0.135, 0.15, 0.86) |
easeInBack | cubic-bezier(0.6, -0.28, 0.735, 0.045) |
easeOutBack | cubic-bezier(0.175, 0.885, 0.32, 1.275) |
easeInOutBack | cubic-bezier(0.68, -0.55, 0.265, 1.55) |
4. Задержка перехода transition-delay
Необязательное свойство, позволяет сделать так, чтобы изменение свойства происходило не моментально, а с некоторой задержкой. Не наследуется.
transition-delay | |
---|---|
Значения: | |
время | Время задержки перехода указывается в секундах или миллисекундах. |
initial | Устанавливает значение свойства в значение по умолчанию. |
inherit | Наследует значение свойства от родительского элемента. |
Синтаксис
div {
transition-delay: .5s;
}
See the Pen wzKZoj by Elena (@html5book) on CodePen.
5. Краткая запись перехода
Все свойства, отвечающие за изменение внешнего вида элемента, можно объединить в одно свойство transition
transition: transition-property transition-duration transition-timing-function transition-delay;
Если воспользоваться значениями по умолчанию, то запись
div {transition: 1s;}
будет эквивалентна
div {transition: all 1s ease 0s;}
6. Плавный переход нескольких свойств
Для элемента можно задать несколько последовательных переходов, перечислив их через запятую. Каждый переход можно оформить своей временной функцией.
div {transition: background 0.3s ease, color 0.2s linear;}
или
div {
transition-property: height, width, background-color;
transition-duration: 3s;
transition-timing-function: ease-in, ease, linear;
}
7. Примеры переходов для различных свойств
Наведите курсором мыши на блоки, чтобы увидеть свойства в действии.
See the Pen gbLXYK by HeleN (@nazarelen) on CodePen.