CSS ๋ก ๋ง๋ ์นด๋ ํ๋ก๊ทธ๋จ ํจ๊ณผ ใทใท
โ CSS โ 5 min read
๐ธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ

๐งโ๐ป ๊นํ๋ธ ๋งํฌ
CSS ์์ฑ ์์๋ณด๊ธฐ
transform : perspective(), rotateY(), rotateX()
CSSย
transform
ย ์์ฑ์ผ๋ก ์์์ ํ์ , ํฌ๊ธฐ ์กฐ์ , ๊ธฐ์ธ์ด๊ธฐ, ์ด๋ ํจ๊ณผ๋ฅผ ๋ถ์ฌํ ์ ์์ต๋๋ค.ยtransform
์ CSSย ์๊ฐ์ ์์ ๋ชจ๋ธ์ ์ขํ ๊ณต๊ฐ์ ๋ณ๊ฒฝํฉ๋๋ค.
perspective()
The perspective CSS property determines the distance between the z=0 plane and the user in order to give a 3D-positioned element some perspective.
perspective
์์ฑ์ ๋ฐฐ์น๋ ์์์ ์๊ทผ๊ฐ์ z=0 ํ๋ฉด๊ณผ ์ฌ์ฉ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
์ถ์ฒ : mdn perspective ๋ฌธ์
์ฆ perspective()๋ ์์์ ์๊ทผ๊ฐ์ ์ฃผ๋ ์์ฑ์ ๋๋ค. ํ๋ฉด๊ณผ ์ฌ์ฉ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ๋ง๋ค์ด ์๊ทผ๊ฐ์ ํํํฉ๋๋ค.
์ ์์์์๋ "perspective(1000px)"์ ์ฌ์ฉํด์ 1000px ๋จ์ด์ ธ ๋ณด์ด๊ฒ ํ์ต๋๋ค.
rotateY(), rotateX()
The rotateX() CSS function defines a transformation that rotates an element around the x-axis (horizontal) without deforming it. Its result is a transform-function data type.
rotateX() ํจ์๋ ์์๋ฅผ ๋ณํํ์ง ์๊ณ , X์ถ(๊ฐ๋ก)๋ฅผ ์ค์ฌ์ผ๋ก ํ์ ํ๋ ๋ณํ์ ์ ์ํฉ๋๋ค. ๊ทธ ๊ฒฐ๊ณผ๋ transform-function ๋ฐ์ดํฐ ์ ํ์ ๋๋ค.
X์ ๊ฒฝ์ฐ๋ X์ถ์ ์ ๋๋ค๋ ๋๋(์์ง ๋ฐฉํฅ)์ผ๋ก ์ ํ๊ฒ ๋ฉ๋๋ค.
๋ฐ๋๋ก Y์ ๊ฒฝ์ฐ๋ Y์ถ์ ์ ๋๋ค๋ ๋๋(์ํ ๋ฐฉํฅ)์ผ๋ก ์ ํ๊ฒ ๋ฉ๋๋ค.
์ถ์ฒ๋ฅผ ๋๋ฌ ์๊ฐ์ ์ผ๋ก ํ์ธํ๋ฉด ์ข์ต๋๋ค.
container.addEventListener('mousemove', (e) => { let x = e.offsetX; let y = e.offsetY; let rotateY = 0.05 * x - 20; let rotateX = 0.05 * y - 20;
overlay.style = `background-position : ${x/3 + y/3}%`
container.style = `transform : perspective(1000px) rotateY(${rotateY}deg) rotateX(${rotateX}deg)`;})
์ ์์์์๋, ๋ง์ฐ์ค๋ฅผ ์ฌ๋ ธ์๋ ์ฌ์ง์ ๋์๊ฐ๊ฒ ํ๋ ์ฉ๋๋ก ์ฌ์ฉํ์ต๋๋ค. ๋ง์ฐ์ค์ x, y ์ขํ๋ฅผ ๊ณ์ฐํ์ฌ ์ต๋ 20๋, ์ต์ -20๋๊น์ง ๋์๊ฐ๋๋ค.
mix-blend-mode
ํด๋น ์์ฑ์, ํฌํ ์ต์ ํด๋ณธ ์ฌ๋์ด๋ผ๋ฉด ์๋งํ multiply, screen ๋ฑ๊ณผ ๊ฐ์ด ๋ธ๋ ๋ ํจ๊ณผ๋ฅผ ์ ํ๋๋ค.
mix-blend-mode: normal;mix-blend-mode: multiply;mix-blend-mode: screen;mix-blend-mode: overlay;mix-blend-mode: darken;mix-blend-mode: lighten;mix-blend-mode: color-dodge;mix-blend-mode: color-burn;mix-blend-mode: hard-light;mix-blend-mode: soft-light;mix-blend-mode: difference;mix-blend-mode: exclusion;mix-blend-mode: hue;mix-blend-mode: saturation;mix-blend-mode: color;mix-blend-mode: luminosity;
filter
The filter CSS property applies graphical effects like blur or color shift to an element. Filters are commonly used to adjust the rendering of images, backgrounds, and borders.
Several functions, such as blur() and contrast(), are available to help you achieve predefined effects.
filter ์์ฑ์ ์์์ ํ๋ฆผ ๋๋ ์์ ์ด๋๊ณผ ๊ฐ์ ๊ทธ๋ํฝ ํจ๊ณผ๋ฅผ ์ ์ฉํฉ๋๋ค. filter๋ ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฏธ์ง, ๋ฐฐ๊ฒฝ ๋ฐ ํ ๋๋ฆฌ์ ๋ ๋๋ง์ ์กฐ์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
blur() ์ contrast()์ ๊ฐ์ ์ฌ๋ฌ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฏธ๋ฆฌ ์ ์๋ ํจ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์ ์์์์๋ overlay์ ๋ฐ๊ธฐ์ ํฌ๋ช ๋๋ฅผ ์กฐ์ ํ๋ ๋ฐ ์ฌ์ฉํ์ต๋๋ค.
filter: brightness(1.0) opacity(0.9);
background-position
The background-position CSS property sets the initial position for each background image. The position is relative to the position layer set by background-origin.
background-position ์์ฑ์ ๊ฐ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง์ ์ด๊ธฐ ์์น๋ฅผ ์ค์ ํฉ๋๋ค. ์์น๋ background-origin ์ค์ ๋ ์์น ๋ ์ด์ด์ ์๋์ ์ ๋๋ค.
mdn background-position ๊ณต์ ๋ฌธ์
background ์์น๋ฅผ ์ ํ๋ ์์ฑ์ ๋๋ค.
์ ์์์์๋ overlay๋ฅผ ์ด๋์ํค๊ธฐ ์ํด ์ฌ์ฉํ์ต๋๋ค.
overlay.style = `background-position : ${x/3 + y/3}%`
background-size
The background-size CSS property sets the size of the element's background image. The image can be left to its natural size, stretched, or constrained to fit the available space.
background-size ์์ฑ์ ์์์ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ค์ ํฉ๋๋ค. ์ด๋ฏธ์ง๋ ์์ฐ์ค๋ฌ์ด ํฌ๊ธฐ๋ก ๋๊ฑฐ๋, ๋๋ฆฌ๊ฑฐ๋, ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ ๋ง๊ฒ ์ ํํ ์ ์์ต๋๋ค.
mdn background-size ๊ณต์ ๋ฌธ์
๋ฐฐ๊ฒฝ ์ฌ์ด์ฆ๋ฅผ ๊ฒฐ์ ํ๋ ์์ฑ์ ๋๋ค.
์ ์ ์์์๋ cover ๋ฅผ ํตํด card ์ฌ์ด์ฆ๋ฅผ ๋ฐ์ค ํฌ๊ธฐ์ ๋ง์ถ๊ฑฐ๋, overlay ํฌ๊ธฐ๋ฅผ 1.5๋ฐฐ ํค์ฐ๋ ์ฉ๋๋ก ์ฌ์ฉํ์ต๋๋ค.
background-size: cover;
background-size: 150% 150%;
์ฃผ์ํด์ผํ ๋ถ๋ถ์ contain๊ณผ cover ์ ๋๋ค.
cover๋ ๋น์จ์ ๋ง์ถ๋, ๋น์จ์ด ๋ค๋ฅด๋ฉด ์๋ฆฝ๋๋ค. ํ์ง๋ง contain์ ์ด๋ฏธ์ง๋ฅผ ์๋ฒฝํ๊ฒ ๋ง์ถ๋, ๊ณต๋ฐฑ์ด ์๊ธธ ์ ์์ต๋๋ค.
์ํฉ์ ๋ฐ๋ผ ์๋ง๊ฒ ์ฌ์ฉํฉ๋๋ค.