[CSS] Transform 전체

ChenΒ·2024λ…„ 6μ›” 3일

CSS

λͺ©λ‘ 보기
2/8
post-thumbnail

μ„±λŠ₯κ°œμ„ μ„ μœ„ν•΄ Reflowλ₯Ό μ΅œμ†Œν™”ν•˜μž

λΈŒλΌμš°μ € λ Œλ”λ§ κ³Όμ •μ—μ„œ 핡심은 Reflow(μ§€μ˜€λ©”νŠΈλ¦¬λ₯Ό λ‹€μ‹œ νŽΈμ„±ν•˜λŠ” μž‘μ—… = λ ˆμ΄μ•„μ›ƒμ„ μž¬κ³„μ‚°ν•˜λŠ” 상황)

Repaint = μž¬κ²°ν•©λœ λ Œλ” 트리 기반으둜 화면에 λ‹€μ‹œ 페인트

cf. reflow λ°œμƒμ‹œ repaint ν•„μ—°μ μœΌλ‘œ λ°œμƒν•˜λŠ”λ°, reflowλŠ” HTML μš”μ†Œμ˜ μœ„μΉ˜/크기 μž¬κ³„μ‚°ν•΄μ•Όν•¨ => repaint에 λΉ„ν•΄ μ‹œκ°„ 였래 κ±Έλ¦Ό (λ³€κ²½ν•˜λ €λŠ” νŠΉμ •μš”μ†Œ 뿐 μ•„λ‹ˆλΌ, μ—°κ΄€λœ λ‹€λ₯Έ μš”μ†Œμ˜ μœ„μΉ˜/ν¬κΈ°κΉŒμ§€ μž¬κ³„μ‚°γ…œγ…œπŸ₯²)

width와 heightλ“±κ³Ό 같은 κΈ°ν•˜ν•™μ  μ†μ„±μ˜ 변경은 λ¦¬ν”Œλ‘œμš° ν•„μš”ν•¨
=> λͺ¨λ“  μš”μ†Œλ“€μ˜ μœ„μΉ˜μ™€ 크기λ₯Ό νŒŒμ•…ν•˜λ„λ‘ κ³„μ‚°ν•˜λŠ”λ° λ§Žμ€ μ‹œκ°„μ΄ κ±Έλ¦Ό
=> κ°€λŠ₯ν•œ 피해라

λ¦¬ν”Œλ‘œμš° λ°œμƒμ‹œν‚€λŠ” CSS트리거: https://csstriggers.com/

κΈ°ν•˜ν•™μ  속성 변경이 λΆˆκ°€ν”Όν•˜λ©΄, transform μ‚¬μš©
or visibility, display보닀 opacityλ₯Ό μ‚¬μš©ν•˜λŠ” 것이 μ„±λŠ₯ κ°œμ„ μ— 도움


/* transform: scale(2); */
width: 200px;
height: 200px;

Transform μ‚¬μš©ν–ˆμ„ λ•Œ
λ‹¨μˆœ width height 값을 μ‘°μ •ν–ˆμ„ λ•Œ


rotate

transform: scale(2) rotate(15deg);

skew

transform: skew(30deg);


transform: skewY(30deg);


translate

transform: translate(30px, 10px);


transform-origin

기쀀점 λ³€κ²½

left top = 0% 0%
right bottom = 100% 100%
center = 50% 50% (defalut)

transform: scale(1.5);
/* transform-origin: left top; */
transform-origin: 0% 0%;


기쀀점 left top

transform: rotate(30deg);
transform-origin: 0% 0%;


기쀀점 right btm

transform: rotate(30deg);
transform-origin: 100% 100%;

Reference :
JavaScript | Reflow λž€ (feat. λΈŒλΌμš°μ € λ Œλ”λ§)

profile
ν˜„μ‹€μ μΈ λͺ½μƒκ°€

0개의 λŒ“κΈ€