Spec-Zone.ru › CSS

CSS-функция `translate3d()`

Базовая поддержка Широко доступна

Эта возможность хорошо зарекомендовала себя и работает на множестве устройств и в разных версиях браузеров. Она поддерживается браузерами с марта 2022 года.

translate3d() CSS-функция перемещает элемент в трёхмерном пространстве. Результатом является тип данных <transform-function>.

Попробуйте

transform: translate3d(0, 0, 0);
transform: translate3d(42px, -62px, -135px);
transform: translate3d(-2.7rem, 0, 1rem);
transform: translate3d(5ch, 0.4in, 5em);
<section class="default-example" id="default-example">
  <div class="transition-all" id="example-element">
    <div class="face front">1</div>
    <div class="face back">2</div>
    <div class="face right">3</div>
    <div class="face left">4</div>
    <div class="face top">5</div>
    <div class="face bottom">6</div>
  </div>
</section>
#default-example {
  background: linear-gradient(skyblue, khaki);
  perspective: 800px;
  perspective-origin: 150% 150%;
}

#example-element {
  width: 100px;
  height: 100px;
  perspective: 550px;
  transform-style: preserve-3d;
}

.face {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  position: absolute;
  backface-visibility: inherit;
  font-size: 60px;
  color: white;
}

.front {
  background: rgb(90 90 90 / 0.7);
  transform: translateZ(50px);
}

.back {
  background: rgb(0 210 0 / 0.7);
  transform: rotateY(180deg) translateZ(50px);
}

.right {
  background: rgb(210 0 0 / 0.7);
  transform: rotateY(90deg) translateZ(50px);
}

.left {
  background: rgb(0 0 210 / 0.7);
  transform: rotateY(-90deg) translateZ(50px);
}

.top {
  background: rgb(210 210 0 / 0.7);
  transform: rotateX(90deg) translateZ(50px);
}

.bottom {
  background: rgb(210 0 210 / 0.7);
  transform: rotateX(-90deg) translateZ(50px);
}

Это преобразование задаётся трёхмерным вектором [tx, ty, tz]. Его координаты определяют, насколько перемещается элемент в каждом направлении.

Синтаксис

translate3d(tx, ty, tz)

Значения

tx
Задаёт <length> или <percentage>, представляющее абсциссу (горизонтальную координату, компоненту x) вектора перемещения [tx, ty, tz].
ty
Задаёт <length> или <percentage>, представляющее ординату (вертикальную координату, компоненту y) вектора перемещения [tx, ty, tz].
tz
Задаёт <length>, представляющее компоненту z вектора перемещения. Значение <percentage> недопустимо; в этом случае свойство, содержащее преобразование, считается недействительным [tx, ty, tz].
Декартовы координаты в ℝ^2 Однородные координаты в ℝℙ^2 Декартовы координаты в ℝ^3 Однородные координаты в ℝℙ^3

Это преобразование применяется в трёхмерном пространстве и не может быть представлено на плоскости.

Перенос не является линейным преобразованием в ℝ^3 и не может быть представлен с помощью матрицы в декартовых координатах. (100tx010ty001tz0001)\left( \begin{array}{cccc} 1 & 0 & 0 & tx \\ 0 & 1 & 0 & ty \\ 0 & 0 & 1 & tz \\ 0 & 0 & 0 & 1 \end{array} \right)

Формальный синтаксис

<translate3d()> = 
  translate3d( <length-percentage> , <length-percentage> , <length> )

<length-percentage> = 
  <length> |
  <percentage>

Примеры

Перенос вдоль одной оси

HTML

<div>Static</div>
<div class="moved">Moved</div>
<div>Static</div>

CSS

div {
  width: 60px;
  height: 60px;
  background-color: skyblue;
}

.moved {
  /* Equivalent to perspective(500px) translateX(10px) */
  transform: perspective(500px) translate3d(10px, 0, 0px);
  background-color: pink;
}

Результат

Совмещение переноса вдоль осей z и x

HTML

<div>Static</div>
<div class="moved">Moved</div>
<div>Static</div>

CSS

div {
  width: 60px;
  height: 60px;
  background-color: skyblue;
}

.moved {
  transform: perspective(500px) translate3d(10px, 0, 100px);
  background-color: pink;
}

Результат

Спецификации

Спецификация
Модуль CSS Transforms, уровень 2
# funcdef-translate3d

Совместимость с браузерами

Настольные Мобильные
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari для iOS Samsung Internet WebView для Android WebView для iOS
translate3d
12
12
10
15
4
18
10
14
3.2
1.0
3
3.2

См. также

  • transform
  • <transform-function>
  • translate

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/transform-function/translate3d

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API