ΠΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡ, Π΄ΡΡΠ·ΡΡ, ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ css transform. Π ΠΈΠΌΠ΅Π½Π½ΠΎ, ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΠ°ΠΊΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ css transform, ΠΊΠ°ΠΊ: translate, rotate, scale, skew, perspective. Π’ΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π΄ΠΎΡΠΎΠ²ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅, Π²Π΅Π΄Ρ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅. Π’Π°ΠΊ ΠΆΠ΅ ΠΏΠΎΠΊΠ°ΠΆΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ css ΡΠ²ΠΎΠΉΡΡΠ²Π° transform. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ translate. ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡ!
ΠΡΠΈΠΌΠ΅ΡΡ css transform
Π― ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠ» Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π±Π»ΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠΎ, ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π½Π°ΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π±Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΡ Π½ΡΠΆΠ½ΠΎ Π½Π°Π²Π΅ΡΡΠΈ ΠΌΡΡΠΊΡ Π½Π° Π±Π»ΠΎΠΊ.
ΠΡΠΈΠΌΠ΅ΡΡ 2d css transform
(ΠΠ»Ρ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ — Π½Π°Π²Π΅Π΄ΠΈΡΠ΅ ΠΌΡΡΠΊΠΎΠΉ)
Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ transform: transtale
ΠΠ°Π½Π½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π½Π°ΠΌ Π΄Π²ΠΈΠ³Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ Π²Π»ΠΈΡΡ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ΄Π²ΠΈΠ½ΡΡΡ Π±Π»ΠΎΠΊ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Π½ΠΈΠΆΠ΅ ΠΈΠ»ΠΈ Π² ΡΡΠΎΡΠΎΠ½Ρ. ΠΡΠΈ ΡΡΠΎΠΌ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ Π·Π°Π΄Π΅Π½Π΅Ρ Π΄ΡΡΠ³ΠΎΠΉ, ΡΠΎ ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΠ΅Ρ Π½Π° Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΡ, Π° ΠΏΡΠΎΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΏΠΎΠ²Π΅ΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ Π½ΠΈΠΌ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈ ΠΊΠΎΠ΄ ΠΊ Π½ΠΈΠΌ.
.block1 {
transform: translateX(50px);
}
.block2 {
transform: translateY(-20px);
}
.block3 {
transform: translate(20px, 20px)
}
Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ transform: rotate
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ rotate ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ²Π΅ΡΠ½ΡΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΠ°ΠΊ ΠΈ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ — ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΏΠΎΠ²Π΅ΡΠ½Π΅ΠΌ, Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΠ΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°.
.block {
transform: rotate(10deg);
}
CSS ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ transform-origin
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ css ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡ ΡΠΎΡΠΊΡ, Π²ΠΎΠΊΡΡΠ³ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π²ΡΠ°ΡΠ°ΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ rotate. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° transform-origin ΡΠ°Π²Π½ΠΎ center center. Π’ΠΎ Π΅ΡΡΡ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±Π»ΠΎΠΊ ΠΊΡΡΡΠΈΡΡΡ Π²ΠΎΠΊΡΡΠ³ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ΅Π½ΡΡΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ Π½ΠΎΠ²ΡΡ ΡΠΎΡΠΊΡ Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ΅Π· ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° Π²ΡΠΎΠ΄Π΅ top, left, bottom, right, center, ΡΠ°ΠΊ ΠΈ ΡΠ΅ΡΠ΅Π· Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠΎΠ΄Π΅ 50px ΠΈΠ»ΠΈ 30%.
.block 1 {
transform-origin: top left;
}
.block2 {
transform-origin: 100px 100px;
}
.block3 {
transform-origin: 110% 100%;
}
Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ transform: scale
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ scale ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊ, ΠΏΡΠΈΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ, ΡΠ°ΠΊ ΠΈ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π² scale ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΄ΠΈΠΌ 1.5, ΡΠΎ ΠΌΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠΌ Π±Π»ΠΎΠΊ Π² 1.5 ΡΠ°Π·Π°. ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΄ΠΈΠΌ 0.5, ΡΠΎ ΠΌΡ Π΅Π³ΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΠΌ Π² ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ. Π’Π°ΠΊ ΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΎΡΠ΅ΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ.
.block1 {
transform: scale(1.2);
}
.block2 {
transform: scaleX(0.8);
}
.block3 {
transform: scaleY(1.1);
}
.block4 {
transform: scale(1.2, 0.8);
}
Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ transform: skew
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ css transform ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π΅ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Ρ Π±Π»ΠΎΠΊ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΎΡΠ΅ΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ, ΠΈΠ»ΠΈ ΠΆΠ΅ ΡΡΠ°Π·Ρ ΠΏΠΎ ΠΎΠ±Π΅ΠΈΡ . ΠΠ° ΡΠ»ΠΎΠ²Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΠ°ΠΊ ΡΡΠΎ Π»ΡΡΡΠ΅ ΡΡΠ°Π·Ρ Π²Π·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΡ.
.block1 {
transform: skewX(20deg);
}
.block2 {
transform: skewY(20deg);
}
.block3 {
transform: skew(20deg, 20deg);
}
Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ transform: matrix
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ matrix ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ transfrom. ΠΠ°ΠΆΠ½ΠΎ, ΡΡΠΎ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² matrix Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ. Π’Π°ΠΊ ΠΆΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠΎΠ»Ρ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΠ³ΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠΎΡΡΠ΄ΠΎΠΊ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ°ΠΊΠΎΠΉ: matrix( scaleX(), skewY(), skewX(), scaleY(), translateX(), translateY() )
.block {
transform: matrix(1.2, 0.1, 0, 1.2, 25, 25);
}
ΠΠ΅Π³ΠΊΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± Π·Π°Π΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ css transform
ΠΡΠ»ΠΈ ΡΠΏΠΎΡΠΎΠ± Ρ matrix ΠΏΠΎΠΊΠ°Π·Π°Π»ΡΡ Π²Π°ΠΌ ΡΠ»ΠΎΠΆΠ½ΡΠΌ — Π½Π΅ ΡΠ°ΡΡΡΡΠ°ΠΈΠ²Π°ΠΉΡΠ΅ΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· Π½Π΅Π³ΠΎ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π±Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ css transform Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π²ΡΠ΅ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΠΎΠ΄Π½Ρ Π»ΠΈΠ½ΠΈΡ, Π½ΠΈΠΊΠ°ΠΊ ΠΈΡ Π½Π΅ ΡΠ°Π·Π΄Π΅Π»ΡΡ.
.block {
transform: scale(1.2) translate(30px, 30px) rotate(20deg);
}
translate(30px, 30px)
rotate(20deg)
Π‘ΡΠ°ΡΡΡ ΠΏΠΎΠΊΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, ΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° Π΄Π½Ρ Π·Π΄Π΅ΡΡ ΠΏΠΎΡΠ²ΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ Π΄Π»Ρ 3d ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΉ)
ΠΠΎΠΊΠ° ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΈΠ΄Π΅ΠΎ, ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΠ°ΡΡΡ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ, ΡΡΠΎ Π±Ρ Π½Π΅ Π·Π°Π±ΡΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΡΠ²ΡΡΡΡ)