๐งฑ ๊ตฌํ ์ด๋ฏธ์ง
html ๊ตฌ์กฐ
html์ ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
- container : ์์๋ค ์ ์ฒด๋ฅผ ๊ฐ์ธ๋ ๊ฐ์ฅ ํฐ div
- menu
- switch : ๋คํฌ๋ชจ๋ / ๋ผ์ดํธ๋ชจ๋๋ฅผ ์ ํํ๋ ํ ๊ธ ์ค์์น.
- select-box : ํฐํธ๋ฅผ ์ ํํ ์ ์๋ ์ ๋ ํธ ๋ฐ์ค
- input-group
- input : autocomplete="off"(์๋์์ฑ ๋๊ธฐ ์ค์ )
- error-message : ํ๊ธ์ด ์ ๋ ฅ๋๋ฉด ๋ํ๋ ์๋ฌ ๋ฉ์์ง
- keyboard
- row : ํค๋ณด๋์ ๊ฐ ์ค
- key : ๊ฐ์ธ์ด ํ๋์ธ ํ์ ๊ณผ ๊ฐ์ธ์ด 2๊ฐ์ธ ํ์ ์ด ์์. ๊ฐ์ธ 2๊ฐ๋ span 2๊ฐ๋ก ๊ตฌ์ฑ๋จ
- row : ํค๋ณด๋์ ๊ฐ ์ค
- menu
css๊ตฌ์กฐ
display : flex;
์์ดํ ๋ค์ ์ ๋ ฌ์ ์ํด์ ์ฌ์ฉํ์๋ค. keyboard์์ ๋ณด๋ฉด row๊ฐ flex-box ๊ฐ ๋๊ณ key๋ค์ด flex-item์ผ๋ก์ ์ผ์ ํ ๋น์จ์ ์ ์งํ๋ฉฐ ์ข์ฐ ์ ๋ ฌ์ด ๋๊ฒ ์ค์ ๋์ด์๋ค. flex container์ flex item์ ์ ์ฉ๋๋ ์์ฑ๋ค์ด ๊ฐ๊ฐ ๋ค๋ฅด๊ธฐ๋๋ฌธ์ ํ์ธํด๋ณด๊ณ ์ฌ์ฉํด์ผํ๋ค.
transition : 0.5s
/* ํจ๊ณผ ์ง์ ์ */
transition : width 1s, height: 2s;
css ์์ฑ์ ๋ณ๊ฒฝํ ๋ ์ ๋๋ฉ์ด์ ์๋๋ฅผ ์กฐ์ ํ ์ ์๋ค. ์์์ฒ๋ผ 0.5๊ฐ ์ค์ ์ด ๋์ด์๋ค๋ฉด, ํด๋น ์์์ css ์์ฑ๋ค์ ๋ณํ๊ฐ 0.5์ด์ ๊ฑธ์ณ์ ์ผ์ด๋๊ฒ ๋๋ค. ํน์ ์์์ ๋ณํ ์๊ฐ์ ์ง์ ํด์ค์๋ ์๊ณ , ์๋ตํ๋ค๋ฉด ์์์ ๋ณํ ์ ์ฒด๊ฐ ํด๋น ์๊ฐ์ ๊ฑธ์ณ์ ๋ณํ๋๊ฒ ๋๋ค. ์๋์ฒ๋ผ ์๊ฐ์ ์ง์ ํด์ค ๊ฒฝ์ฐ, width๋ 1์ด๋์ ๋ณํ๊ฒ ๋๊ณ height๋ 2์ด๋์ ๋ณํ๊ฒ ๋๋ค.
element::before
๊ฐ์์์์ผ๋ก ์์์ ๋งจ ์ฒ์ ์์์ด ๋๋ ์์๋ฅผ ๋ง๋ ๋ค. ::after์ ๊ฒฝ์ฐ ๋งจ ๋ง์ง๋ง ์์์ด ๋๋ ๊ฐ์์์๋ฅผ ๋ง๋ค์ด์ค๋ค.
๊ฐ์์์๋ฅผ ์ฌ์ฉํ ๋๋ content ์์ฑ์ ๋ฐ๋์ ๊ฐ์ด ์์ด์ผ ํ๋ค. ๋๋ถ๋ถ์ ๋น ๋ฌธ์์ด ''์ ๋ฃ์ด์ค๋ค.
input:checked + .slider::before
์ฒดํฌ๋ ์ธํ์ ๋ฐ๋ก ๋ค์์ ๋์ค๋ slider์ before์์์ ์คํ์ผ์ ์ง์ ํ๋ค๋ ๋ป์ด๋ค.
input์ด ์ฒดํฌ๋์ง ์์์ ๊ฒฝ์ฐ์๋ ์คํ์ผ์ด ์ ์ฉ๋์ง ์๋๋ค.
transform
์์์ ์ขํ ๊ณต๊ฐ์ ๋ณ๊ฒฝํ๋ค. ํ์ , ํฌ๊ธฐ ์กฐ์ , ๊ธฐ์ธ์ด๊ธฐ, ์์น ์ด๋ ๋ฑ์ ์ค์ ํ ์ ์๋ค.
์ค์์น๊ฐ ํด๋ฆญ๋์์๋ ํ ๊ธ ๋ฒํผ์ด ์์ง์ด๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ฒ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
************************
#ํจ์คํธ์บ ํผ์ค #ํจ์บ ์ฑ๋ฆฐ์ง #์๊ฐ๋ฃ0์์ฑ๋ฆฐ์ง #ํ๊ธ์ฑ๋ฆฐ์ง #์ง์ฅ์ธ์ธ๊ฐ #์ง์ฅ์ธ์๊ธฐ๊ณ๋ฐ
#ํจ์บ ์ธ๊ฐํ๊ธฐ #ํจ์คํธ์บ ํผ์คํ๊ธฐ #์ค๊ณต์ #30๊ฐํ๋ก์ ํธ๋ก๋ฐฐ์ฐ๋ํ๋ก ํธ์๋withReact
ํจ์คํธ์บ ํผ์ค [์ง์ฅ์ธ ์ค๋ฌด๊ต์ก]
ํ๋ก๊ทธ๋๋ฐ, ์์ํธ์ง, UX/UI, ๋ง์ผํ , ๋ฐ์ดํฐ ๋ถ์, ์์ ๊ฐ์, The RED, ๊ตญ๋น์ง์, ๊ธฐ์ ๊ต์ก, ์๋น์ค ์ ๊ณต.
fastcampus.co.kr