translateZ()

La función translateZ() CSS reposiciona un elemento a lo largo del eje-z (z-axis) en el espacio 3D, es decir, más cerca o mas lejos del espectador. Su resultado es un <transform-function> tipo de dato.

Pruébalo

Esta transformación es definida por una <length> la cual especifica que tan lejos hacia denttro o hacia afuera el elemento o los elementos se mueven.

En los ejemplos interacticos anteriores, perspective: 550px; (para crear un espacio 3D) y transform-style: preserve-3d; (los elementos hijos, los 6 lados del cubo, estan también posicionados en el espacio 3D), es decir, han sido establecidos en el cubo.

Nota: translateZ(tz) es equivalente a translate3d(0, 0, tz).

Syntax

translateZ(tz)

Values

tz

Una <length> que representa el componente-z del vector. Un valor positivo mueve el elemento hacia el espectador, y un elemento negativo mueve el elemento más lejos.

Coordenadas Cartesianas en ℝ2 Coordenadas Homógeneas en ℝℙ2 Coordenadas Cartesianas en ℝ3 Coordenadas Homógeneas enℝℙ3
Esta transformación se aplica al espacio 4D y no puede ser representada en el plano. Una traducción no es una transformación lineal en ℝ3 y no puede ser representada usando una matriz de coordenadas-Cartesianas.

1 0 0 0

0 1 0 0

0 0 1 t

0 0 0 1

Ejemplos

En este ejemplo, se crean dos cuadros. Uno se coloca normalmente en la página, sin ser traducida en absoluto. El segundo se modifica aplicando perspectiva para crear un espacio 3D, luego se mueve hacia el usuario.

HTML

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

CSS

css
div {
  position: relative;
  width: 60px;
  height: 60px;
  left: 100px;
  background-color: skyblue;
}

.moved {
  transform: perspective(500px) translateZ(200px);
  background-color: pink;
}

Lo que realmente importa es la clase "movida"; veamos que hace. Primero, la función perspective() (en-US) posiciona al espectador en relación con el plano que se encuentra donde z=0 (en esencia, la superficie de la pantalla). Un valor de 500px significa que el usario es 500 pixels "delante de" las imagenes ubicadas en z=0.

Luego, la función translateZ() mueve el elemento 200 pixeles "hacia afuera" desde la pantalla, hacia el usuario. Esto tiene el efecto de hacer que el elemento parezca más grande cuando se ve en una pantalla 2D, o más cerca cuando se ve usando un auricular VR u otro dispositivo de pantalla 3D.

Resultado

Si el valor perspective() es menor que el valor translateZ(), como transform: perspective(200px) translateZ(300px); el elemento transformado no será visible ya que está más allá de la vista del usuario. Cuanto menor sea la diferencia entre la pespectiva y los valores de transformación, más cerca estará el usuario del elemento y más grande parecerá el elemento traducido.

Especificaciones

Specification
CSS Transforms Module Level 2
# funcdef-translatez

Compatibilidad con navegador

Por favor observe la propiedad <transform-function> para información de compatibilidad.

Véase también