-
๐คฆโ๏ธ ๋ฒ์จ 2์ฃผ์ฐจ๊ฐ ์ง๋๊ฐ๋ค๋..
์ด๋ฒ ์ฃผ๋ ์ค๊ฐ์ ์ ๊ฑฐ๋ ์ด ๊ปด์์ด์ ๊ทธ๋ฐ๊ฐ ๋๊ฒ ๊ธ๋ฐฉ ์ง๋๊ฐ ๊ฒ ๊ฐ๋ค. ํฌ๊ฒ ํ ๊ฑด ์์ง๋ง ๊ฐ๋จํ๊ฒ๋ผ๋ ์ ๋ฆฌํด๋ด์ผ๊ฒ ๋ค.
๐ค ์ด๋ป๊ฒ ์ฌ์ฌ์ฉํด์ผ ํ ๊น?
์ด๋ฒ ์ฃผ์ ๊ทธ๋๋ง ๊ฐ์ฅ ๋ง์ด ๊ณ ๋ฏผํ ๋ถ๋ถ์ด ์ปดํฌ๋ํธ ์ฌ์ฌ์ฉ์ ๊ดํ ๋ถ๋ถ์ธ ๊ฒ ๊ฐ๋ค. ์ง๋์ฃผ์ ๋ง๋ค๋ค ๋ง์๋ ๊ฒ์๋ฐ๋ฅผ ๋ง์ ๋ง๋ค์๋๋ฐ, prop์ผ๋ก ๊ฒ์๋ฐ์ ํฌ๊ธฐ๋ฅผ ๋ฐ์์ ๋ถ๊ธฐ ์ฒ๋ฆฌํ๋ค ๋ณด๋ ์ ์ฒด์ ์ผ๋ก ์ข ๋ณต์กํด์ง๋ ๊ฒ ๊ฐ์์ ์ต๋ํ ๊น๋ํ๊ฒ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค. ๋ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ณด์ฌ์ง๋ ๋ด์ฉ์ด ๋ฌ๋ผ์ผ ํด์ return๋ฌธ๋ ์ผํญ ์ฐ์ฐ์๋ก ๋ค๋ฅธ ๋ด์ฉ์ ๋ฐํํ๋๋ก ํ๋๋ฐ, ์ด ๋ถ๋ถ๋ ๊น๋ํ๊ฒ ๋ง๋ค๊ณ ์ถ์ด์ ๋ฐ๋ก ํ์ผ์ ๋ง๋ค์ด์ ๋ถ๋ฆฌํด๋ณผ๊น ํ๋ ์๊ฐ์ด ๋ค์๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ ๊ฒ ์ฌ์ฉํด๋ณธ ์ ์ด ์์ด์ ๋ฆฌ๋ทฐ์ด๋๊ป ์ง๋ฌธ์ ํ๊ณ , ๋ต๋ณ์ ๋ฐ๋ ๋๋ก ๋ฐ์ํด๋ณผ ์์ ์ด๋ค.
๋ ๊ณ ๋ฏผํ๋ ๋ถ๋ถ์ด ๋ชจ๋ฌ์ธ๋ฐ, ์ด์ ์ ๊ตฌํํ ๋๋ ๋ชจ๋ฌ์ด ํ๋ฉด์ ์ ๊ฐ์ด๋ฐ ์์นํด ์์ด์ createPortal์ ์ฌ์ฉํด ๋ฃจํธ ์์ ์ธ๋ถ์ ์๋ ๋ ์์๋ฅผ ์ ํํด ๋ชจ๋ฌ์ ๋ ๋๋ง ํด์คฌ์๋ค. ํ์ง๋ง ์ด๋ฒ์๋ ์ ๊ฐ์ด๋ฐ ๋จ๋ ๋ชจ๋ฌ๋ฟ๋ง ์๋๋ผ ํน์ ์์์ ํ๋จ์ ์์นํ๋ ๋ชจ๋ฌ๋ค์ด ์์ด์ ์ด ๋ถ๋ถ์ ์ด๋ป๊ฒ ๊ตฌํํ ์ง ๋ง์ด ๊ณ ๋ฏผํ๋ ๊ฒ ๊ฐ๋ค. ๋ฐ๋ก ๋ถ๋ฆฌํ์๋ ์๊น์๊ฐ ๊ฑฐ์ ๋น์ทํด์ ์ด๋ป๊ฒ ์ํ๋ฉด ์ฌ์ฌ์ฉํ ์ ์์ง ์์๊น ํ๋ ์๊ฐ์ด ๋ค์๋ค. ๊ทธ๋์ ์ด๊ฒ์ ๊ฒ ์ฐพ์๋ณด๋ค๊ฐ ์ ์ฉํ ๋ฐฉ์์ด createPortal์ ์ฌ์ฉํ๋ ํน์ ์์ ๋ฐ์ ๋ ๋๋ง ๋๋ ๊ฒฝ์ฐ์๋ ํด๋น ์์๋ฅผ prop์ผ๋ก ๋ฐ์์ ์ปจํ ์ด๋๋ก ์ง์ ํด์ฃผ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ฃจํธ ์์ ์ธ๋ถ์ ๋ ๋๋ง ํด์ ํ๋ฉด ์ ๊ฐ์ด๋ฐ์ ๋์์ค ์ ์๋๋ก ๊ตฌ์กฐ๋ฅผ ์ก์๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ ๊ฒ ํ๋ฉด ํน์ ์์ ๋ฐ์ ๋ ๋๋ง ํ๋ ๊ฒฝ์ฐ์๋ ๊ทธ๋ฅ ๋ชจ๋ฌ ์ปดํฌ๋ํธ๋ฅผ ๋ฐ๋ก ๋ฃ์ด์ฃผ๋ ๊ฑฐ๋ ๋ค๋ฅผ ๊ฒ ์๋ ๊ฒ ๊ฐ์์ ์ด๋ฐ ์์ผ๋ก ์ฌ์ฉํด๋ ๋๋์ง ํ์ ์ด ์ ์ ์ฐ๋ค. ์ด ๋ถ๋ถ๋ ๋ฆฌ๋ทฐ์ด๋๊ป ์ง๋ฌธํ๋๋ฐ ์์ง๊น์ง๋ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ์ง ๋ชปํ๋ค..๐ฅฒ
๐ ๊ฒ์๋ฐ CSS ์ฒ๋ฆฌ
๊ฒ์๋ฐ์ ๊ฐ ์์ญ์ด ๊ตฌ๋ถ์ ์ผ๋ก ๋๋์ด ์๋๋ฐ, ์ด ๊ตฌ๋ถ์ ์ ๋ง์ง๋ง ์์ญ์ ์ ์ธํ ์์ญ์ CSS ๊ฐ์์์ ::after๋ก ๋ฃ์ด์คฌ์๋ค. ๊ทธ๋ฐ๋ฐ ์์ญ์ ๋ง์ฐ์ค๋ฅผ ์ฌ๋ ธ์ ๋ ํด๋น ์์ญ์ ์ข์ฐ์ ์๋ ๊ตฌ๋ถ์ ์ด ์ฌ๋ผ์ ธ์ผ ํ๋๋ฐ, ๋ค๋ฅธ ์์ญ์ ์๋ ๊ตฌ๋ถ์ ์ ์ด๋ป๊ฒ ์ง์์ค์ผ ํ ์ง ๊ณ ๋ฏผ์ด ๋๋ค.
${PeriodArea}, ${PriceArea}, ${PersonnelArea} { height: 100%; padding: 16px 24px; border-radius: 60px; &:hover { background-color: ${theme.color.grey5}; &::before, & + div::before { display: none; } } }
๊ทธ๋์ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ด ๊ตฌ๋ถ์ ์ ::before๋ฅผ ์ฌ์ฉํด์ ๋ฃ์ด์ฃผ๋ ๊ฑธ๋ก ๋ณ๊ฒฝํ๊ณ , hover ์ํ์ผ ๋ + ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด์ ํด๋น ์์ญ์ ์ค๋ฅธ์ชฝ์ ์๋ ๊ตฌ๋ถ์ ๊น์ง ํจ๊ป ๋ณด์ด์ง ์๋๋ก ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋ ๊ฒ์ด์๋ค. ํ์์๋ ๊ฑฐ์ ์ ์จ์ ๊น๋จน๋ค์ํผ ํ ์ฐ์ฐ์์๋๋ฐ, ์ด๋ฒ ๊ธฐํ์ ํ์คํ๊ฒ ์๊ฒ ๋์๋ ๊ฒ ๊ฐ๋ค.
๐ ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
๋ฉ์ธ ํ์ด์ง์ ์ฃผ์ ๊ธฐ๋ฅ์ด ์บ๋ฆฐ๋์ ์ฌ๋ผ์ด๋์๋๋ฐ, ๋๋ ์ฌ๋ผ์ด๋ ๋ถ๋ถ์ ๋งก์์ ํ๊ฒ ๋๋ค. ์ฌ๋ผ์ด๋์๋ ๊ฐ๊ฒฉ ๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ฐจํธ๋ก ๋ณด์ฌ์ฃผ๋ ๋ถ๋ถ์ด ํฌํจ๋์ด ์์๋๋ฐ, ์ด์ ์ ๋๊ตฌ ๊ฒ์ ๋ง๋ค ๋ ์ผ๋ ๊ฒ์ฒ๋ผ ์บ๋ฒ์ค๋ก ๊ฐ๋จํ ๊ฑธ ๊ทธ๋ ค๋ณด๊ธฐ๋ง ํ์ง ์ด๋ ๊ฒ ๋ณธ๊ฒฉ์ ์ผ๋ก(?) ์จ๋ณธ ์ ์ ์์ด์ ์ข ๊ฑฑ์ ๋๊ธฐ๋ ํ๋ค. ๊ทธ๋๋ ์ฌ์ฉ๋ฒ์ ์ฐพ์๊ฐ๋ฉด์ ํ๋ ๋ช๋ช ๋ถ๋ถ์ ์ ์ธํ๊ณ ๋ ํฌ๊ฒ ์ด๋ ต์ง๋ ์์๋ ๊ฒ ๊ฐ๋ค. ๊ทธ๋ํ๋ฅผ ๋ฐ์ ๋ผ์ธ ๋ ๊ฐ์ง ํํ๋ก ๊ตฌํํ๋๋ฐ, ๋ผ์ธํ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆด ๋๋ ๊ณก์ ํํ๋ก ๊ทธ๋ฆฌ๋ ๊ฒ ์ข ์ด๋ ค์ ๋ค. quadraticCurveTo๋ผ๋ ๋ฉ์๋๋ฅผ ํ์ฉํ๋๋ฐ, ์ฌ์ค ์์ง๋ ์ ์ดํดํ์ง ๋ชปํ๋ค.. ๋ค๋ฅธ ๋ถ๋ค์ bezierCurveTo๋ฅผ ๋ง์ด ์ฌ์ฉํ์ ๊ฒ ๊ฐ๋๋ฐ, ์ด๊ฑฐ๋ ์ค๋ช ์ ๋ค์ผ๋ ์ด๋ ์ ๋ ์ดํด๊ฐ ๋๋ ๊ฒ ๊ฐ๊ธฐ๋ ํ๋ค. ๋ค์๋ฒ์ ์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฑธ๋ก ๋ณ๊ฒฝํด๋ด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค. ๋ฐ ํํ์ ๊ทธ๋ํ๋ ์ขํ๋ฅผ ๊ณ์ฐํ๋ ๊ฒ ์ข ๊น๋ค๋กญ๊ธด ํ๋๋ฐ ๊ฐ๋ฐํ๊ธฐ ์ ๋ฏธ๋ฆฌ ์ ๋ฆฌํด๋ ๋๋ก ๋ง๋๋ ์๊ฐ๋ณด๋ค ๊ธ๋ฐฉ ๊ตฌํํ ์ ์์๋ค. ๋ ํํ ๋ชจ๋ ๋ค์ด์ค๋ ๋ฐ์ดํฐ์ ํฌ๊ธฐ์ ๋ง๊ฒ ์ ๋์ ์ผ๋ก ๊ทธ๋ ค์ง ์ ์๋๋ก ๊ตฌํํ๋ค.
๐ ํ์ปค๋ฐ๋ฐ์ด
๋ชฉ์์ผ์ ๋ค๋ฅธ ์๋ฃ์๋ค๊ณผ ๋ํ๋ฅผ ๋๋ ์ ์๋ ํ์ปค๋ฐ๋ฐ์ด๊ฐ ์งํ๋๋ค. ํด๋์ค๋ณ๋ก ๊ทธ๋ฃน์ ๋๋ ์ ์ง์์๋ตํ๋ ๋ฐฉ์์ผ๋ก ์งํ๋๋๋ฐ, ์ฐ๋ฆฌ ๋ฐฉ์ด ์๊ฐ๋ณด๋ค ๋๋ฌด ์กฐ์ฉํ ๋ถ์๊ธฐ์ฌ์ ๊ฑฐ์ ์๋ฃ์๋ถ๋ค์ ํ ํฌ์ผ ๊ฐ์ ๋๋์ด๋ผ ์ข ์ฃ์กํ๊ธฐ๋ ํ๋ค... ๊ทธ๋๋ ๋์์ด ๋๋ ์๊ธฐ๋ฅผ ์ ๋ง ๋ง์ด ํด์ฃผ์ ์ ๊ฐ์ฌํ๋ค. ๋ค์ผ๋ฉด์ ๋๋ ๋ด๋ ์ ๊ทธ๋ฐ ์๊ธฐ๋ฅผ ํ ์ ์์ ์ ๋๋ก ์ฑ์ฅํด์์๊น ํ๋ ์๊ฐ์ด ๋ค๊ธฐ๋ ํ๋ค. ๋ฌผ๋ก ๋ง์ฃผ๋ณ์ด ๋ณ๋ก ์์ด์ ์ฐธ์ฌํ ์ ์์ ๊ฒ ๊ฐ์ง ์์ง๋ง ์ด์ฌํ ํด์ผ๊ฒ ๋ค๋ ๋๊ธฐ๋ถ์ฌ๊ฐ ๋์๋ ๊ฒ ๊ฐ๋ค. ๋ ๋ฌธ์ ํด๊ฒฐ์ ์ด๋ป๊ฒ ํ๋์ง ์ ๊ธฐ๋กํด๋๋ผ๋ ์๊ธฐ๋ ํด์ฃผ์ ์, ๋ค์์ฃผ๋ถํฐ๋ ๊ฐ๋ฐํ ๋ ์ด๋ ค์ ๋ ๋ถ๋ถ์ ๊ฐ๋จํ๊ฒ๋ผ๋ ์ ์ ๋ฆฌํด๋ฌ์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
๐ซ ํ๋ ํ ์ฃผ์๋ค •••
์ด๋ฒ ์ฃผ๋ ๋ฐ์๊ฒ ์ง๋๊ฐ ๊ฒ ๊ฐ๋ค. ๋ญ๊ฐ ํ ๊ฑด ์๋๋ฐ ์๊ฐ์ ํญ์ ์์ฒญ ๋นจ๋ฆฌ ๊ฐ ๋๋..ใ ใ ์ ๋ํ ์ด๋ฒ์๋ ์ ์ง ๋ชจ๋ฅด๊ฒ ์์๋ ๋ณ๋ก ์ ์๊ธฐ๊ณ ์ง์ค๋ ์ ์ ๋๋ ๊ฒ ๊ฐ๋ค. ํ์ ์คํฌ๋ฆฝํธ๋ ์๋ก ์ ์ฉํ๊ฒ ๋๊ณ ๊ตฌํํด์ผํ ๊ธฐ๋ฅ๋ ํจ์ฌ ๋ง์์ก๋๋ฐ๋ ์ง๋ ํ๋ก์ ํธ๋ฅผ ํ ๋์ ๋น๊ตํ๋ฉด ํ์ ํ ์ด์ ์ด ๋จ์ด์ง ๊ฒ ๋๊ปด์ ธ์ ์ค์ค๋ก๋ ์ ์ด๋ด๊น ํ๋ ์๊ฐ์ด ๋ง์ด ๋ค์๋ค. ๊ธ๋ฐฉ ๊ทน๋ณตํ ์ ์๊ฒ ์ง๋ง ๋ฌด๊ธฐ๋ ฅํ๋ค๊ณ ์ ๋๊ณ ์์ง ๋ง๊ณ ์๊พธ ๋ญ๋ผ๋ ํด๋ณด๋ ค๊ณ ๋ ธ๋ ฅํด์ผ๊ฒ ๋ค.
๊ทธ๋ฆฌ๊ณ ํ๊ณ ๋ฅผ ์ผ์ฃผ์ผ ๋จ์๋ก ๋๋ ์ ์ฐ๋๊น ์ด๋ฐ์๋ ๋ญ ํ๋์ง ์ ๊ธฐ์ต์ด ์ ๋์ ๊ธฐ์ต์ ๋๋ฌ์ด์ ์ฐ๊ฒ ๋๋ ๊ฒ ๊ฐ๋ค. ์์ผ๋ณ๋ก ๋๋ ์ ์จ๋ณผ๊น ์ถ๊ธฐ๋ ํ๋ฐ ๋งค์ผ ์ฐ๋ ค๋ฉด ํ๋ค ๊ฒ ๊ฐ๊ธฐ๋ ํ๊ณ ... ์ด๋ป๊ฒ ํ ์ง ๋ฐฉ๋ฒ์ ์ข ์๊ฐํด๋ด์ผ ํ ๊ฒ ๊ฐ๋ค.
'ํ๊ณ > Codesquad' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[6/13 ~ 6/19] ์ฝ๋์ค์ฟผ๋ ๋ง์คํฐ์ฆ 23์ฃผ์ฐจ ํ๊ณ (0) 2022.06.26 [6/6 ~ 6/12] ์ฝ๋์ค์ฟผ๋ ๋ง์คํฐ์ฆ 22์ฃผ์ฐจ ํ๊ณ (0) 2022.06.19 [5/23 ~ 5/29] ์ฝ๋์ค์ฟผ๋ ๋ง์คํฐ์ฆ 20์ฃผ์ฐจ ํ๊ณ (0) 2022.06.05 ์ฝ๋์ค์ฟผ๋ ๋ง์คํฐ์ฆ ์ธ๋ฒ์งธ ํ๋ก์ ํธ ํ๊ณ (0) 2022.05.25 ๋๊ธ