Propiedades de transformación individual de CSS en la vista previa de la tecnología Safari
El blog de WebKit detalla cómo utilizar propiedades de transformación CSS individuales en la última versión de Safari Technology Preview. Esto alinea el navegador con la especificación CSS Transforms Module Level 2 , que divide las translate()
funciones rotate()
y scale()
de la transform
propiedad en sus propias propiedades individuales: translate
, scale
y rotate
.
Entonces, en lugar de encadenar esas tres funciones en la transform
propiedad:
.some-element { transform: translate(50px 50px) rotate(15deg) scale(1.2);}
…podemos escribirlos individualmente como sus propias propiedades:
.some-element { translate: 50px 50px; rotate: 15deg; scale: 1.2;}
Si eres como yo, tu mente salta inmediatamente a “¿por qué diablos querríamos escribir MÁS líneas de código?” Quiero decir, estamos acostumbrados a ver que las propiedades individuales se convierten en subpropiedades de una taquigrafía, y no al revés, como hemos visto con background
, border
, font
, margin
, padding
, place-items
etc.
Pero el equipo de WebKit describe algunas razones sólidas por las que querríamos hacer esto:
- Es más sencillo escribir una sola propiedad cuando solo se necesita una función, como
scale: 2;
en lugar detransform: scale(2);
. - Hay mucha menos preocupación por anular accidentalmente otras
transform
propiedades cuando están encadenadas. - Es muchísimo más sencillo cambiar una animación de fotograma clave en una propiedad individual en lugar de tener que “precalcular” y “recalcular” valores intermedios al encadenarlos con
transform
. - Obtenemos un control más refinado sobre el tiempo y los fotogramas claves de propiedades individuales.
La publicación también señala algunos consejos útiles. Por ejemplo, las nuevas propiedades de transformación individuales se aplican primero ( translate
, rotate
y scale
, en ese orden) antes de las funciones de la transform
propiedad.
¡Ah, y no podemos pasar por alto la compatibilidad con el navegador! Es extremadamente limitado en el momento de escribir este artículo… básicamente solo a Safari Technology Preview 117 y Firefox 72 y superiores para un enorme soporte global del 3,9%:
translate
rotate
scale
La publicación sugiere usar @supports
si desea comenzar a usar las propiedades:
@supports (translate: 0) { /* Individual transform properties are supported */ div { translate: 100px 100px; }}@supports not (translate: 0) { /* Individual transform properties are NOT supported */ div { transform: translate(100px, 100px); }}
Ese es el ejemplo de código extraído directamente de la publicación. Modificar esto puede ayudarnos a evitar el uso del not
operador. No estoy seguro de que sea una mejora del código o no, pero parece más una mejora progresiva hacer algo como esto:
div { transform: translate(100px, 100px);}@supports (translate: 0) { /* Individual transform properties are supported */ div { transform: none; translate: 100px 100px; }}
De esta manera, borramos las funciones abreviadas y damos paso a las propiedades individuales, pero sólo si son compatibles.
Funciones de transformación CSS individuales
rotar escala transformar traducir Chris Coyier
Obtenga el valor de la rotación de CSS a través de JavaScript
rotar escala transformar traducir Chris Coyier
Ahora que existen las propiedades personalizadas de CSS, todas las partes de valor se pueden cambiar individualmente
rotar escala transformar traducir Chris Coyier
Deja un comentario