Учебник по преобразованиям CSS

Свойство transform позволяет нам визуально манипулировать элементами, масштабируя, перекашивая, поворачивая или переводя их.

Например:

.element {   
  width: 30px;   
  height: 30px;   
  transform: scale(10); 
}
Войти в полноэкранный режим Выход из полноэкранного режима

Несмотря на объявления высоты и ширины, трансформация масштабирует наш элемент в десять раз больше его исходного размера!

Трансформации особенно интересны в сочетании с анимацией.

Функции преобразования

Мы можем использовать следующие функции:

Давайте рассмотрим каждую из них!

Масштаб

Функция scale() — это сокращение для scaleX() и scaleY().

scaleX() изменяет размер элемента вдоль оси x (по горизонтали), а scaleY() — вдоль оси y (по вертикали).

Например, давайте увеличим ширину .element на 2 (удвоим его ширину) и уменьшим его высоту на 0.5 (уменьшим вдвое):

.element {
  transform: scale(2, 0.5);
}
Вход в полноэкранный режим Выйти из полноэкранного режима

Первый параметр — scaleX(), а второй scaleY().

Перекос

Функция skew() наклоняет элемент влево или вправо. Это также сокращение для skewX() и skewY().

Перекос по оси x (горизонтальный):

transform: skewX(15deg);
Войти в полноэкранный режим Выход из полноэкранного режима

Перекос по оси y (вертикальный):

transform: skewY(15deg);
Войти в полноэкранный режим Выход из полноэкранного режима

Перекос вдоль обеих осей одновременно:

transform: skew(15deg, 15deg);
Войти в полноэкранный режим Выйти из полноэкранного режима

Повернуть

Функция rotate() поворачивает элемент по часовой стрелке относительно его исходного положения:

transform: rotate(25deg);
Войти в полноэкранный режим Выйти из полноэкранного режима

Мы можем использовать отрицательное значение, чтобы повернуть его в противоположном направлении:

transform: rotate(-25deg);
Войти в полноэкранный режим Выйти из полноэкранного режима

Перевести

Функция translate() перемещает элемент в горизонтальном или вертикальном направлении (относительно его исходного положения):

transform: translate(50px, 10px);
Вход в полноэкранный режим Выйти из полноэкранного режима

Здесь наш элемент переместится на 50px (вправо) по горизонтальной оси и на 10px (вниз) по вертикальной оси.

Это сокращенное обозначение:

transform: translateX(50px);
transform: translateY(10px);
Войти в полноэкранный режим Выйти из полноэкранного режима

Чтобы вместо этого переместиться влево или вверх, мы просто используем отрицательные значения.

Мы можем использовать любое допустимое значение длины, например px, em и rem.

Объединение нескольких преобразований

Несколько преобразований можно комбинировать, разделяя каждую функцию пробелом:

transform: rotateY(30deg) scaleX(2) translateX(200px);
Войти в полноэкранный режим Выход из полноэкранного режима

3D-трансформации

При 3D-преобразованиях добавляется третья ось «z», которая добавляет измерение глубины.

Следующие дополнительные функции управляют осью Z:

  • translateZ()
  • rotateZ()
  • scaleZ()

Для них у нас есть соответствующие сокращения translate3d(), rotate3d() и scale3d(). Для случаев, когда мы хотим объединить translateX(), translateY() и translateZ().

Перспектива

Свойство перспективы определяет, на каком расстоянии от зрителя находится 3D-объект:

.element {
  perspective: 100px;
}
Войти в полноэкранный режим Выход из полноэкранного режима

Меньшее значение приведет к более интенсивному 3D-эффекту, чем большее значение.

Обратите внимание, что при определении perspective для элемента, дочерние элементы получают вид перспективы, а не сам элемент.

Perspective-origin

Свойство perspective-origin определяет, в какой позиции пользователь смотрит на 3D-объект:

.element {
  perspective: 100px;
  perspective-origin: left;
}
Вход в полноэкранный режим Выход из полноэкранного режима

Оно позиционирует 3D-объект так, как будто на него смотрят под другим углом.

Заключение

Если вам понравилась эта статья, следуйте за мной в Twitter, где я ежедневно пишу о вещах, связанных с техникой!
Если вам понравилась эта статья и вы хотите оставить совет — нажмите здесь

🌎 Let’s Connect

  • Портфолио

  • Twitter

  • LinkedIn

  • Hashnode

  • Devto

  • Medium

  • Github

  • Codepen

Оцените статью
devanswers.ru
Добавить комментарий