Las transformaciones en CSS3 ofrecen la posibilidad de añadir persepectiva a tus elementos HTML. Podemos usar las transformaciones CSS3 para disponer los elementos en un espacio 2D o 3D. HTML es generalmente una presentación lineal, todos los elementos son esencialmente rectángulos. Las transformaciones nos permiten aprovechar los diferentes planos para dar a nuestro "layout" cierta perspectiva. Hay dos tipos de transformaciones: 2D y 3D. Vamos a ver primero las transformaciones 2D:
- Skew: Define un sesgo 2D a lo largo de los ejes x e y.
- Scale: Proporciona un escalado 2D sobre los ejes x e y.
- Rotate: Proporciona una rotación 2D a un número de grados definido.
- Translate: Se traslada (o desplaza) el elemento a una posición definida 2D.
CSS:
.caja{ display:block; margin-bottom:20px; width:100px; height:60px; background:#ddd; border:2px solid #c8c8c8; } .caja_skew { transform: skew(30deg); -ms-transform: skew(30deg); /* IE 9 */ -webkit-transform: skew(30deg); /* Safari y Chrome */ -o-transform: skew(30deg); /* Opera */ -moz-transform: skew(30deg); /* Firefox */ } .caja_scale { transform: scale(1,0.5); -ms-transform: scale(1,0.5); /* IE 9 */ -webkit-transform: scale(1,0.5); /* Safari y Chrome */ -o-transform: scale(1,0.5); /* Opera */ -moz-transform: scale(1,0.5); /* Firefox */ } .caja_rotate { transform: rotate(15deg); -ms-transform: rotate(15deg); /* IE 9 */ -webkit-transform: rotate(15deg); /* Safari y Chrome */ -o-transform: rotate(15deg); /* Opera */ -moz-transform: rotate(15deg); /* Firefox */ } .caja_translate { transform: translate(125px, 15px); -ms-transform: translate(125px, 15px); /* IE 9 */ -webkit-transform: translate(125px, 15px); /* Safari y Chrome */ -o-transform: translate(125px, 25px); /* Opera */ -moz-transform: translate(125px, 15px); /* Firefox */ } .caja_rotate_skew_scale_translate { transform: skew(30deg) scale(1,0.5) rotate(30deg) translate(25px,25px); -ms-transform: skew(30deg) scale(1,0.5) rotate(30deg) translate(25px,25px); /* IE 9 */ -webkit-transform: skew(30deg) scale(1,0.5) rotate(30deg) translate(25px,25px); /* Safari y Chrome */ -o-transform: skew(30deg) scale(1,0.5) rotate(30deg) translate(25px,25px); /* Opera */ -moz-transform: skew(30deg) scale(1,0.5) rotate(30deg) translate(25px,25px); /* Firefox */ }HTML:
<p>sesgar:</p> <div class="caja caja_skew"></div> <p>escalar:</p> <div class="caja caja_scale"></div> <p>rotar:</p> <div class="caja caja_rotate"></div> <p>trasladar:</p> <div class="caja caja_translate"></div> <p>rotar, sesgar, escalar y trasladar:</p> <div class="caja caja_rotate_skew_scale_translate"></div>Ver ejemplo en funcionamiento » »
CSS3 transformaciones en 3D
Las transformaciones en 3D se implementan de manera similar a las transformaciones 2D, pero también tienes acceso a un tercer plano. A continuación vemos las opciones disponibles para las transformaciones 3D.
- translate3d: Traslada (o desplaza) el elemento a una posición 3D definida en los ejes x,y,z.
- scale3d: especifica una operación de escala 3D en los ejes x,y,z.
- rotateX: especifica una rotación hacia la derecha por el ángulo dado alrededor del eje x.
- rotateY: especifica una rotación hacia la derecha por el ángulo dado alrededor del eje y.
- rotateZ: especifica una rotación hacia la derecha por el ángulo dado alrededor el eje z.
CSS:
.caja{ display:block; margin-bottom:20px; width:100px; height:60px; background:#ddd; border:2px solid #c8c8c8; } .caja_translate3d { transform: translate3d(75%, ?25%, 0); -ms-transform: translate3d(75%, ?25%, 0); /* IE 9 */ -webkit-transform: translate3d(75%, ?25%, 0); /* Safari y Chrome */ -o-transform: translate3d(75%, ?25%, 0); /* Opera */ -moz-transform: translate3d(75%, ?25%, 0); /* Firefox */ } .caja_scale3d { transform: scale3d(0.5, 1.25,1); -ms-transform: scale3d(0.5, 1.25,1); /* IE 9 */ -webkit-transform: scale3d(0.5, 1.25,1); /* Safari y Chrome */ -o-transform: scale3d(0.5, 1.25,1); /* Opera */ -moz-transform: scale3d(0.5, 1.25,1); /* Firefox */ } .caja_rotate_x { transform: rotateX(100deg); -ms-transform: rotateX(100deg); /* IE 9 */ -webkit-transform: rotateX(100deg); /* Safari y Chrome */ -o-transform: rotateX(100deg); /* Opera */ -moz-transform: rotateX(100deg); /* Firefox */ } .caja_rotate_y { transform: rotateY(10deg); -ms-transform: rotateY(10deg); /* IE 9 */ -webkit-transform: rotateY(10deg); /* Safari y Chrome */ -o-transform: rotateY(10deg); /* Opera */ -moz-transform: rotateY(10deg); /* Firefox */ } .caja_rotate_z { transform: rotateZ(40deg); -ms-transform: rotateZ(40deg); /* IE 9 */ -webkit-transform: rotateZ(40deg); /* Safari y Chrome */ -o-transform: rotateZ(40deg); /* Opera */ -moz-transform: rotateZ(40deg); /* Firefox */ }HTML:
<p>trasladar 3d:</p> <div class="caja caja_translate3d"></div> <p>escalar 3d:</p> <div class="caja caja_scale3d"></div> <p>rotar x:</p> <div class="caja caja_rotate_y"></div> <p>rotar y:</p> <div class="caja caja_rotate_z"></div> <p>rotar z:</p> <div class="caja caja_rotate_x"></div>Ver ejemplo en funcionamiento » »
Para ver mejor el efecto de las transformaciones vamos a realizar unas simples animaciones.
CSS:
.caja{ display:block; margin-bottom:20px; width:100px; height:60px; background:#ddd; border:2px solid #c8c8c8; -webkit-transition: all 1s ease-in-out; -moz-transition: all 1s ease-in-out; -o-transition: all 1s ease-in-out; -ms-transition: all 1s ease-in-out; transition: all 1s ease-in-out; } .caja_translate3d:hover { transform: translate3d(75%, -25%, 0); -ms-transform: translate3d(75%, -25%, 0); /* IE 9 */ -webkit-transform: translate3d(75%, -25%, 0); /* Safari y Chrome */ -o-transform: translate3d(75%, -25%, 0); /* Opera */ -moz-transform: translate3d(75%, -25%, 0); /* Firefox */ } .caja_scale3d:hover { transform: scale3d(0.5, 1.25,1); -ms-transform: scale3d(0.5, 1.25,1); /* IE 9 */ -webkit-transform: scale3d(0.5, 1.25,1); /* Safari y Chrome */ -o-transform: scale3d(0.5, 1.25,1); /* Opera */ -moz-transform: scale3d(0.5, 1.25,1); /* Firefox */ } .caja_rotate_x:hover{ transform: rotateX(100deg); -ms-transform: rotateX(100deg); /* IE 9 */ -webkit-transform: rotateX(100deg); /* Safari y Chrome */ -o-transform: rotateX(100deg); /* Opera */ -moz-transform: rotateX(100deg); /* Firefox */ } .caja_rotate_y:hover{ transform: rotateY(10deg); -ms-transform: rotateY(10deg); /* IE 9 */ -webkit-transform: rotateY(10deg); /* Safari y Chrome */ -o-transform: rotateY(10deg); /* Opera */ -moz-transform: rotateY(10deg); /* Firefox */ } .caja_rotate_z:hover{ transform: rotateZ(40deg); -ms-transform: rotateZ(40deg); /* IE 9 */ -webkit-transform: rotateZ(40deg); /* Safari y Chrome */ -o-transform: rotateZ(40deg); /* Opera */ -moz-transform: rotateZ(40deg); /* Firefox */ }HTML:
<p>trasladar 3d:</p> <div class="caja caja_translate3d"></div> <p>escalar 3d:</p> <div class="caja caja_scale3d"></div> <p>rotar x:</p> <div class="caja caja_rotate_y"></div> <p>rotar y:</p> <div class="caja caja_rotate_z"></div> <p>rotar z:</p> <div class="caja caja_rotate_x"></div>Ver ejemplo en funcionamiento » »
No hay comentarios:
Publicar un comentario