aboutsummaryrefslogtreecommitdiff
path: root/files/es/web/css/css_transforms/using_css_transforms/index.html
blob: ac73ecaafc96ed0ec818503006d8766c56787b2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
---
title: Uso de CSS transforms
slug: Web/CSS/CSS_Transforms/Using_CSS_transforms
translation_of: Web/CSS/CSS_Transforms/Using_CSS_transforms
---
<div>{{CSSRef}}</div>

<p>Al modificar las coordenadas del espacio, las transformaciones CSS permiten cambiar la posición del contenido afectado sin interrumpir el flujo normal. Se implementan haciendo uso de un conjunto de propiedades CSS que permiten aplicar transformaciones lineales a elementos HTML. Estas transformaciones incluyen rotar, torcer, escalar y desplazar en plano o en un espacio 3D.</p>

<h2 id="Propiedades_de_las_transformaciones_CSS">Propiedades de las transformaciones CSS</h2>

<p>Se usan dos propiedades principalmente para definir las transformaciones CSS: {{ cssxref("transform") }} y {{ cssxref("transform-origin") }}</p>

<dl>
 <dt>{{ cssxref("transform-origin") }}</dt>
 <dd>Especifica la posición de origen que se usará para la transformación. Por defecto es el lado superior izquierdo del elemento. Esta posición es usada por varias transformaciones como rotar, escalar o torcer ya que necesitan de este punto especifico como parámetro.</dd>
 <dt>{{ cssxref("transform") }}</dt>
 <dd>Especifica la transformación a realizar sobre el elemento. Se define como una lista separada por espacios de transformaciones que se aplican en orden una después de la otra, tal y como es requerido por la operación de composición.</dd>
</dl>

<h2 id="Ejemplos">Ejemplos</h2>

<p>Esta es una imagen inalterada del logo de MDN:</p>

<p><img alt="MDN Logo" src="https://mdn.mozillademos.org/files/12539/Screen%20Shot%202016-02-16%20at%2015.53.54.png" style="height: 106px; width: 110px;"></p>

<h3 id="Ejemplo_Rotando">Ejemplo: Rotando</h3>

<p>Aquí está el logo MDN en un iframe rotado 90 grados desde su esquina inferior izquierda.</p>

<pre class="brush: html">&lt;img style="transform: rotate(90deg);
            transform-origin: bottom left;"
     src="https://mdn.mozillademos.org/files/12539/Screen%20Shot%202016-02-16%20at%2015.53.54.png"&gt;
</pre>

<p>{{ EmbedLiveSample('Ejemplo_Rotando', 'auto', 240, '', 'Web/CSS/CSS_Transforms/Using_CSS_transforms') }}</p>

<h3 id="Ejemplo_Torciendo_y_desplazando">Ejemplo: Torciendo y desplazando</h3>

<p>Aquí está el logo MDN torcido 10 grados y desplazado 150 pixels en el eje X.</p>

<pre class="brush: html">&lt;img style="transform: skewx(10deg) translatex(150px);
            transform-origin: bottom left;"
     src="https://mdn.mozillademos.org/files/12539/Screen%20Shot%202016-02-16%20at%2015.53.54.png"&gt;
</pre>

<h2 id="Propiedades_CSS_específicas_para_3D">Propiedades CSS específicas para 3D</h2>

<p>Realizar cambios en las propiedades CSS en el espacio tridemensional es un poco más complejo. Debes empezar configurando el espacio 3D dándole una perspectiva, a continuación debes configurar cómo interactuarán los elementos 2D en dicho espacio.</p>

<h3 id="Definiendo_una_perspectiva">Definiendo una perspectiva</h3>

<p>El primer elemento a definir es la <em>perspectiva</em>. La perspectiva es lo que nos da la sensación de 3D. Cuanto más lejanos estén los elementos del espectador, más pequeños serán.</p>

<p>Definímos como de rápido se encogen con la propiedad {{ cssxref("perspective") }}. Cuánto más pequeño sea el valor, más profunda será la perspectiva.</p>

<div>
<table class="standard-table">
 <tbody>
  <tr>
   <td><code>perspective:0;</code></td>
   <td><code>perspective:250px;</code></td>
  </tr>
  <tr>
   <td>
    <div class="container" style="width: 200px; height: 200px; margin: 75px 0 0 75px; border: none;">
    <div class="cube" style="width: 100%; height: 100%; -moz-perspective: 0; -moz-transform-style: preserve-3d; -moz-perspective-origin: 150% 150%;">
    <div class="middle" style="display: block; position: absolute; width: 100px; height: 100px; border: 1px dashed black; line-height: 100px; font-family: arial, sans-serif; font-size: 60px; color: white; text-align: center; background: transparent;">   </div>

    <div class="front" style="">1</div>

    <div class="back" style="">2</div>

    <div class="right" style="">3</div>

    <div class="left" style="">4</div>

    <div class="top" style="">5</div>

    <div class="bottom" style="">6</div>
    </div>
    </div>
   </td>
   <td>
    <div class="container" style="width: 200px; height: 200px; margin: 75px 0 0 75px; border: none;">
    <div class="cube" style="width: 100%; height: 100%; -moz-perspective: 150px; -moz-transform-style: preserve-3d; -moz-perspective-origin: 150% 150%;">
    <div class="middle" style="display: block; position: absolute; width: 100px; height: 100px; border: 1px dashed black; line-height: 100px; font-family: arial, sans-serif; font-size: 60px; color: white; text-align: center; background: transparent;">   </div>

    <div class="front" style="">1</div>

    <div class="back" style="">2</div>

    <div class="right" style="">3</div>

    <div class="left" style="">4</div>

    <div class="top" style="">5</div>

    <div class="bottom" style="">6</div>
    </div>
    </div>
   </td>
   <td>
    <div class="container" style="width: 200px; height: 200px; margin: 75px 0 0 75px; border: none;">
    <div class="cube" style="width: 100%; height: 100%; -moz-perspective: 300px; -moz-transform-style: preserve-3d; -moz-perspective-origin: 150% 150%;">
    <div class="middle" style="display: block; position: absolute; width: 100px; height: 100px; border: 1px dashed black; line-height: 100px; font-family: arial, sans-serif; font-size: 60px; color: white; text-align: center; background: transparent;">   </div>

    <div class="front" style="">1</div>

    <div class="back" style="">2</div>

    <div class="right" style="">3</div>

    <div class="left" style="">4</div>

    <div class="top" style="">5</div>

    <div class="bottom" style="">6</div>
    </div>
    </div>
   </td>
   <td>
    <div class="container" style="width: 200px; height: 200px; margin: 75px 0 0 75px; border: none;">
    <div class="cube" style="width: 100%; height: 100%; -moz-perspective: 600px; -moz-transform-style: preserve-3d; -moz-perspective-origin: 150% 150%;">
    <div class="middle" style="display: block; position: absolute; width: 100px; height: 100px; border: 1px dashed black; line-height: 100px; font-family: arial, sans-serif; font-size: 60px; color: white; text-align: center; background: transparent;">   </div>

    <div class="front" style="">1</div>

    <div class="back" style="">2</div>

    <div class="right" style="">3</div>

    <div class="left" style="">4</div>

    <div class="top" style="">5</div>

    <div class="bottom" style="">6</div>
    </div>
    </div>
   </td>
  </tr>
 </tbody>
</table>
</div>

<p>El segundo elemento a configurar es la posición del espectador, con la propiedad {{ cssxref("perspective-origin") }}. Por defecto, la perspectiva está centrada en el espectad</p>

<p>{{ EmbedLiveSample('Definiendo_una_perspectiva', '', '', '', 'Web/CSS/CSS_Transforms/Using_CSS_transforms') }}</p>

<p>or, pero no siempre es lo adecuado.</p>

<div>
<table class="standard-table">
 <tbody>
  <tr>
   <td><code>perspective-origin:150px 150px;</code></td>
   <td><code>perspective-origin:50% 50%;</code></td>
   <td><code>perspective-origin:-50px -50px;</code></td>
  </tr>
  <tr>
   <td>
    <div class="container" style="width: 100px; height: 100px; margin: 25px; border: none;">
    <div class="cube" style="width: 100%; height: 100%; -moz-perspective: 300px; -moz-transform-style: preserve-3d; -moz-perspective-origin: 150% 150%;">
    <div class="front" style="">1</div>

    <div class="back" style="">2</div>

    <div class="right" style="">3</div>

    <div class="left" style="">4</div>

    <div class="top" style="">5</div>

    <div class="bottom" style="">6</div>
    </div>
    </div>
   </td>
   <td>
    <div class="container" style="width: 100px; height: 100px; margin: 25px; border: none;">
    <div class="cube" style="width: 100%; height: 100%; -moz-perspective: 300px; -moz-transform-style: preserve-3d; -moz-perspective-origin: 50% 50%;">
    <div class="front" style="">1</div>

    <div class="back" style="">2</div>

    <div class="right" style="">3</div>

    <div class="left" style="">4</div>

    <div class="top" style="">5</div>

    <div class="bottom" style="">6</div>
    </div>
    </div>
   </td>
   <td>
    <div class="container" style="width: 100px; height: 100px; margin: 25px; border: none;">
    <div class="cube" style="width: 100%; height: 100%; -moz-perspective: 300px; -moz-transform-style: preserve-3d; -moz-perspective-origin: -50% -50%;">
    <div class="front" style="">1</div>

    <div class="back" style="">2</div>

    <div class="right" style="">3</div>

    <div class="left" style="">4</div>

    <div class="top" style="">5</div>

    <div class="bottom" style="">6</div>
    </div>
    </div>
   </td>
  </tr>
 </tbody>
</table>
</div>

<p>Una vez has hecho esto, ya puedes trabajar con los elementos en el espacio 3D.</p>

<h3 id="2D_elements_in_the_3D_space">2D elements in the 3D space</h3>

<h2 id="See_also">See also</h2>

<ul>
 <li><a href="/en/Using_Deviceorientation_In_3D_Transforms" title="Using Deviceorientation In 3D Transforms">Using deviceorientation in 3D Transforms</a></li>
</ul>