{"id":9449,"date":"2025-04-18T12:04:19","date_gmt":"2025-04-18T05:04:19","guid":{"rendered":"https:\/\/mb668s.com\/cam-nang-7mb66-xoc-dia\/?p=9449"},"modified":"2025-04-18T12:07:35","modified_gmt":"2025-04-18T05:07:35","slug":"transform-css-la-gi","status":"publish","type":"post","link":"https:\/\/mb668s.com\/cam-nang-7mb66-xoc-dia\/tu-van-nghe-nghiep\/transform-css-la-gi","title":{"rendered":"Transform CSS l\u00e0 g\u00ec? Kh\u00e1m ph\u00e1 c\u00f4ng c\u1ee5 t\u1ea1o hi\u1ec7u \u1ee9ng \u0111\u1ed9ng b\u1eb1ng CSS"},"content":{"rendered":"\n
Thi\u1ebft k\u1ebf giao di\u1ec7n web kh\u00f4ng ch\u1ec9 d\u1eebng l\u1ea1i \u1edf b\u1ed1 c\u1ee5c hay m\u00e0u s\u1eafc m\u00e0 c\u00f2n \u0111\u00f2i h\u1ecfi s\u1ef1 sinh \u0111\u1ed9ng v\u00e0 m\u01b0\u1ee3t m\u00e0 trong t\u1eebng hi\u1ec7u \u1ee9ng chuy\u1ec3n \u0111\u1ed9ng. \u0110\u1ec3 hi\u1ec7n th\u1ef1c h\u00f3a \u0111i\u1ec1u \u0111\u00f3, nhi\u1ec1u l\u1eadp tr\u00ecnh vi\u00ean t\u00ecm \u0111\u1ebfn transform CSS l\u00e0 g\u00ec<\/strong> nh\u01b0 m\u1ed9t g\u1ee3i m\u1edf cho vi\u1ec7c thay \u0111\u1ed5i tr\u1ef1c quan h\u00ecnh d\u1ea1ng, v\u1ecb tr\u00ed ho\u1eb7c g\u00f3c xoay c\u1ee7a ph\u1ea7n t\u1eed m\u00e0 v\u1eabn gi\u1eef nguy\u00ean c\u1ea5u tr\u00fac b\u1ed1 c\u1ee5c. Khi \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u00fang c\u00e1ch, transform kh\u00f4ng ch\u1ec9 n\u00e2ng cao t\u00ednh th\u1ea9m m\u1ef9 m\u00e0 c\u00f2n g\u00f3p ph\u1ea7n c\u1ea3i thi\u1ec7n tr\u1ea3i nghi\u1ec7m ng\u01b0\u1eddi d\u00f9ng m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3.<\/strong><\/p>\n\n\n\n Transform trong CSS l\u00e0 m\u1ed9t thu\u1ed9c t\u00ednh cho ph\u00e9p thay \u0111\u1ed5i h\u00ecnh d\u1ea1ng, v\u1ecb tr\u00ed, k\u00edch th\u01b0\u1edbc ho\u1eb7c g\u00f3c xoay c\u1ee7a ph\u1ea7n t\u1eed HTML th\u00f4ng qua c\u00e1c ph\u00e9p bi\u1ebfn \u0111\u1ed5i h\u00ecnh h\u1ecdc nh\u01b0 translate, rotate, scale v\u00e0 skew. Khi \u0111\u01b0\u1ee3c \u00e1p d\u1ee5ng, transform kh\u00f4ng l\u00e0m thay \u0111\u1ed5i c\u1ea5u tr\u00fac b\u1ed1 c\u1ee5c c\u1ee7a trang m\u00e0 ch\u1ec9 \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn c\u00e1ch ph\u1ea7n t\u1eed \u0111\u01b0\u1ee3c hi\u1ec3n th\u1ecb, gi\u00fap t\u1ea1o hi\u1ec7u \u1ee9ng tr\u1ef1c quan sinh \u0111\u1ed9ng.<\/strong><\/p>\n<\/blockquote>\n\n\n\n Thu\u1ed9c t\u00ednh n\u00e0y th\u01b0\u1eddng \u0111\u01b0\u1ee3c d\u00f9ng trong c\u00e1c t\u00ecnh hu\u1ed1ng c\u1ea7n t\u01b0\u01a1ng t\u00e1c tr\u1ef1c ti\u1ebfp v\u1edbi ng\u01b0\u1eddi d\u00f9ng nh\u01b0 hi\u1ec7u \u1ee9ng hover, chuy\u1ec3n \u0111\u1ed9ng h\u00ecnh \u1ea3nh hay hi\u1ec3n th\u1ecb popup. Khi k\u1ebft h\u1ee3p v\u1edbi transition ho\u1eb7c animation, transform cho ph\u00e9p x\u00e2y d\u1ef1ng c\u00e1c chuy\u1ec3n \u0111\u1ed9ng linh ho\u1ea1t m\u00e0 kh\u00f4ng c\u1ea7n \u0111\u1ebfn JavaScript, g\u00f3p ph\u1ea7n t\u1ed1i \u01b0u h\u00f3a hi\u1ec7u su\u1ea5t v\u00e0 n\u00e2ng cao tr\u1ea3i nghi\u1ec7m ng\u01b0\u1eddi d\u00f9ng tr\u00ean c\u1ea3 desktop l\u1eabn mobile.<\/p>\n\n\n\n \u0110\u1eb1ng sau nh\u1eefng hi\u1ec7u \u1ee9ng h\u00ecnh \u1ea3nh sinh \u0111\u1ed9ng l\u00e0 c\u01a1 ch\u1ebf ho\u1ea1t \u0111\u1ed9ng \u0111\u1eb7c bi\u1ec7t c\u1ee7a transform. Vi\u1ec7c hi\u1ec3u \u0111\u00fang c\u00e1ch n\u00f3 v\u1eadn h\u00e0nh l\u00e0 n\u1ec1n t\u1ea3ng \u0111\u1ec3 \u1ee9ng d\u1ee5ng hi\u1ec7u qu\u1ea3 v\u00e0 ki\u1ec3m so\u00e1t t\u1ed1t h\u00e0nh vi hi\u1ec3n th\u1ecb c\u1ee7a ph\u1ea7n t\u1eed.<\/strong><\/p>\n\n\n\n Thu\u1ed9c t\u00ednh transform trong CSS ho\u1ea1t \u0111\u1ed9ng th\u00f4ng qua vi\u1ec7c \u00e1p d\u1ee5ng c\u00e1c ph\u00e9p bi\u1ebfn \u0111\u1ed5i h\u00ecnh h\u1ecdc tr\u1ef1c ti\u1ebfp l\u00ean ph\u1ea7n t\u1eed t\u1ea1i t\u1ea7ng hi\u1ec3n th\u1ecb (rendering layer), thay v\u00ec thay \u0111\u1ed5i v\u1ecb tr\u00ed th\u1ef1c s\u1ef1 c\u1ee7a ph\u1ea7n t\u1eed trong c\u00e2y DOM. \u0110i\u1ec1u n\u00e0y \u0111\u1ed3ng ngh\u0129a v\u1edbi vi\u1ec7c ph\u1ea7n t\u1eed \u0111\u01b0\u1ee3c hi\u1ec3n th\u1ecb t\u1ea1i m\u1ed9t v\u1ecb tr\u00ed m\u1edbi ho\u1eb7c v\u1edbi m\u1ed9t h\u00ecnh d\u1ea1ng m\u1edbi, nh\u01b0ng b\u1ea3n th\u00e2n c\u1ea5u tr\u00fac t\u00e0i li\u1ec7u HTML v\u1eabn gi\u1eef nguy\u00ean. Nh\u1edd c\u01a1 ch\u1ebf n\u00e0y, transform kh\u00f4ng l\u00e0m \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn c\u00e1ch c\u00e1c ph\u1ea7n t\u1eed xung quanh \u0111\u01b0\u1ee3c b\u1ed1 tr\u00ed.<\/p>\n\n\n\n Kh\u00e1c v\u1edbi c\u00e1c thu\u1ed9c t\u00ednh b\u1ed1 c\u1ee5c nh\u01b0 margin, padding hay position, v\u1ed1n \u0111i\u1ec1u ch\u1ec9nh tr\u1ef1c ti\u1ebfp kh\u00f4ng gian chi\u1ebfm d\u1ee5ng c\u1ee7a ph\u1ea7n t\u1eed v\u00e0 \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn v\u1ecb tr\u00ed c\u1ee7a c\u00e1c ph\u1ea7n t\u1eed kh\u00e1c trong b\u1ed1 c\u1ee5c, transform ch\u1ec9 thay \u0111\u1ed5i c\u00e1ch ph\u1ea7n t\u1eed \u0111\u01b0\u1ee3c hi\u1ec3n th\u1ecb m\u00e0 kh\u00f4ng l\u00e0m thay \u0111\u1ed5i kh\u00f4ng gian th\u1ef1c t\u1ebf m\u00e0 n\u00f3 chi\u1ebfm gi\u1eef. V\u00ed d\u1ee5, khi s\u1eed d\u1ee5ng translateX(100px), ph\u1ea7n t\u1eed s\u1ebd \u0111\u01b0\u1ee3c hi\u1ec3n th\u1ecb l\u1ec7ch sang ph\u1ea3i 100px, nh\u01b0ng ph\u1ea7n t\u1eed li\u1ec1n k\u1ec1 v\u1eabn xem nh\u01b0 n\u00f3 \u1edf v\u1ecb tr\u00ed ban \u0111\u1ea7u.<\/p>\n\n\n\n M\u1ed9t trong nh\u1eefng \u01b0u \u0111i\u1ec3m l\u1edbn c\u1ee7a transform l\u00e0 kh\u1ea3 n\u0103ng t\u01b0\u01a1ng th\u00edch v\u1edbi t\u0103ng t\u1ed1c ph\u1ea7n c\u1ee9ng, gi\u00fap c\u1ea3i thi\u1ec7n hi\u1ec7u su\u1ea5t tr\u00ecnh duy\u1ec7t khi x\u1eed l\u00fd c\u00e1c hi\u1ec7u \u1ee9ng \u0111\u1ed9ng. So v\u1edbi vi\u1ec7c thao t\u00e1c layout b\u1eb1ng c\u00e1ch thay \u0111\u1ed5i top, left ho\u1eb7c width, height, s\u1eed d\u1ee5ng transform gi\u00fap tr\u00ecnh duy\u1ec7t tr\u00e1nh \u0111\u01b0\u1ee3c c\u00e1c ph\u00e9p t\u00ednh b\u1ed1 c\u1ee5c ph\u1ee9c t\u1ea1p (reflow), t\u1eeb \u0111\u00f3 mang l\u1ea1i tr\u1ea3i nghi\u1ec7m m\u01b0\u1ee3t m\u00e0 h\u01a1n, \u0111\u1eb7c bi\u1ec7t trong c\u00e1c animation ho\u1eb7c khi giao di\u1ec7n thay \u0111\u1ed5i li\u00ean t\u1ee5c.<\/p>\n\n\n\n Transform trong CSS h\u1ed7 tr\u1ee3 nhi\u1ec1u gi\u00e1 tr\u1ecb kh\u00e1c nhau \u0111\u1ec3 gi\u00fap thay \u0111\u1ed5i h\u00ecnh d\u1ea1ng v\u00e0 v\u1ecb tr\u00ed ph\u1ea7n t\u1eed m\u1ed9t c\u00e1ch linh ho\u1ea1t. M\u1ed7i gi\u00e1 tr\u1ecb t\u01b0\u01a1ng \u1ee9ng v\u1edbi m\u1ed9t lo\u1ea1i ph\u00e9p bi\u1ebfn \u0111\u1ed5i h\u00ecnh h\u1ecdc ri\u00eang, c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ed9c l\u1eadp ho\u1eb7c k\u1ebft h\u1ee3p \u0111\u1ec3 t\u1ea1o ra hi\u1ec7u \u1ee9ng ph\u1ee9c t\u1ea1p.<\/p>\n\n\n\n translate() \u0111\u01b0\u1ee3c d\u00f9ng \u0111\u1ec3 thay \u0111\u1ed5i v\u1ecb tr\u00ed c\u1ee7a ph\u1ea7n t\u1eed theo tr\u1ee5c X v\u00e0 Y m\u00e0 kh\u00f4ng l\u00e0m \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn b\u1ed1 c\u1ee5c t\u1ed5ng th\u1ec3. V\u00ed d\u1ee5: transform: translate(50px, 100px) s\u1ebd di chuy\u1ec3n ph\u1ea7n t\u1eed 50px sang ph\u1ea3i v\u00e0 100px xu\u1ed1ng d\u01b0\u1edbi. \u0110\u00e2y l\u00e0 ph\u01b0\u01a1ng ph\u00e1p ph\u1ed5 bi\u1ebfn trong c\u00e1c hi\u1ec7u \u1ee9ng chuy\u1ec3n \u0111\u1ed9ng, v\u00ec n\u00f3 kh\u00f4ng g\u00e2y reflow cho trang.<\/p>\n\n\n\n scale() cho ph\u00e9p t\u0103ng ho\u1eb7c gi\u1ea3m k\u00edch th\u01b0\u1edbc c\u1ee7a ph\u1ea7n t\u1eed theo t\u1ef7 l\u1ec7. C\u00fa ph\u00e1p scale(1.5) s\u1ebd ph\u00f3ng to ph\u1ea7n t\u1eed l\u00ean 150%, c\u00f2n scale(0.5) s\u1ebd thu nh\u1ecf c\u00f2n m\u1ed9t n\u1eeda. B\u1ea1n c\u0169ng c\u00f3 th\u1ec3 ch\u1ec9 \u0111\u1ecbnh ri\u00eang t\u1eebng tr\u1ee5c v\u1edbi scaleX() v\u00e0 scaleY() \u0111\u1ec3 ki\u1ec3m so\u00e1t ch\u00ednh x\u00e1c h\u01a1n.<\/p>\n\n\n\n V\u1edbi rotate(), b\u1ea1n c\u00f3 th\u1ec3 xoay ph\u1ea7n t\u1eed quanh t\u00e2m c\u1ee7a n\u00f3 ho\u1eb7c m\u1ed9t \u0111i\u1ec3m t\u00f9y ch\u1ec9nh \u0111\u01b0\u1ee3c x\u00e1c \u0111\u1ecbnh b\u1eb1ng transform-origin. V\u00ed d\u1ee5: rotate(45deg) s\u1ebd xoay ph\u1ea7n t\u1eed m\u1ed9t g\u00f3c 45 \u0111\u1ed9 theo chi\u1ec1u kim \u0111\u1ed3ng h\u1ed3. \u0110\u00e2y l\u00e0 hi\u1ec7u \u1ee9ng th\u01b0\u1eddng d\u00f9ng trong c\u00e1c n\u00fat nh\u1ea5n, icon ho\u1ea1t h\u00ecnh, ho\u1eb7c t\u1ea1o chuy\u1ec3n \u0111\u1ed9ng t\u1ef1 nhi\u00ean.<\/p>\n\n\n\n skew() l\u00e0m nghi\u00eang ph\u1ea7n t\u1eed theo tr\u1ee5c X ho\u1eb7c Y, t\u1ea1o hi\u1ec7u \u1ee9ng k\u00e9o gi\u00e3n nh\u01b0 b\u1ecb xi\u00ean \u0111i. C\u00fa ph\u00e1p skew(20deg, 10deg) s\u1ebd l\u00e0m nghi\u00eang ph\u1ea7n t\u1eed 20 \u0111\u1ed9 theo tr\u1ee5c X v\u00e0 10 \u0111\u1ed9 theo tr\u1ee5c Y. Gi\u00e1 tr\u1ecb n\u00e0y th\u01b0\u1eddng \u0111\u01b0\u1ee3c d\u00f9ng \u0111\u1ec3 t\u1ea1o c\u00e1c hi\u1ec7u \u1ee9ng th\u1ecb gi\u00e1c m\u1edbi m\u1ebb, l\u1ea1 m\u1eaft trong thi\u1ebft k\u1ebf web hi\u1ec7n \u0111\u1ea1i.<\/p>\n\n\n\n matrix() l\u00e0 d\u1ea1ng vi\u1ebft t\u1eaft k\u1ebft h\u1ee3p c\u1ee7a translate, scale, rotate v\u00e0 skew trong m\u1ed9t bi\u1ec3u th\u1ee9c duy nh\u1ea5t. M\u1eb7c d\u00f9 c\u00fa ph\u00e1p matrix(a, b, c, d, e, f) kh\u00f3 \u0111\u1ecdc h\u01a1n, nh\u01b0ng n\u00f3 c\u1ef1c k\u1ef3 m\u1ea1nh m\u1ebd trong c\u00e1c t\u00ecnh hu\u1ed1ng c\u1ea7n ki\u1ec3m so\u00e1t ch\u00ednh x\u00e1c cao. Gi\u00e1 tr\u1ecb n\u00e0y ch\u1ee7 y\u1ebfu d\u00f9ng khi c\u1ea7n hi\u1ec7u su\u1ea5t cao ho\u1eb7c t\u1ea1o ra c\u00e1c hi\u1ec7u \u1ee9ng n\u00e2ng cao b\u1eb1ng t\u00ednh to\u00e1n to\u00e1n h\u1ecdc.<\/p>\n\n\n\n
<\/figure>\n\n\n\nTransform CSS l\u00e0 g\u00ec?<\/h2>\n\n\n\n
\n
C\u00e1ch ho\u1ea1t \u0111\u1ed9ng c\u1ee7a thu\u1ed9c t\u00ednh Transform<\/h2>\n\n\n\n
C\u01a1 ch\u1ebf t\u00ednh to\u00e1n: kh\u00f4ng \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn DOM th\u1ef1c t\u1ebf<\/h3>\n\n\n\n
Ph\u00e2n bi\u1ec7t v\u1edbi c\u00e1c thu\u1ed9c t\u00ednh nh\u01b0 position, margin, padding<\/h3>\n\n\n\n
T\u00e1c \u0111\u1ed9ng \u0111\u1ebfn hi\u1ec7u su\u1ea5t tr\u00ecnh duy\u1ec7t v\u00e0 tr\u1ea3i nghi\u1ec7m ng\u01b0\u1eddi d\u00f9ng<\/h3>\n\n\n\n
C\u00e1c gi\u00e1 tr\u1ecb ph\u1ed5 bi\u1ebfn c\u1ee7a transform<\/h2>\n\n\n\n
translate() \u2013 Di chuy\u1ec3n ph\u1ea7n t\u1eed<\/h3>\n\n\n\n
\u00a0scale() \u2013 Ph\u00f3ng to, thu nh\u1ecf<\/h3>\n\n\n\n
rotate() \u2013 Xoay ph\u1ea7n t\u1eed<\/h3>\n\n\n\n
\u00a0skew() \u2013 Nghi\u00eang ph\u1ea7n t\u1eed<\/h3>\n\n\n\n
\u00a0matrix() \u2013 K\u1ebft h\u1ee3p nhi\u1ec1u thao t\u00e1c<\/h3>\n\n\n\n
\n