You Can Become A
๋ฆ๊ฒ ์์ํด๋ ๋๊ตฌ๋ ์ง ๋ ธ๋ ฅํ๋ฉด ๊ฐ๋ฐ์๊ฐ ๋ ์ ์์ด์ !
Style Sheet
๐ฎ PurgeCSS ์ฌ์ฉ๋ฒ - CSS ํ๋ ์์ํฌ ์ฝ๋ ์ต์ ํ
CSS ํ๋ ์์ํฌ์ ๋ฌธ์ ์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ๋ ์๋น์ค ํ์ง๊ณผ ์ฑ๋ฅ๋ ์ค์ํ์ง๋ง, ๋น ์ง์ง ์๋ ๊ฒ์ด ์น๋์์ธ์ด๋ค. ์น๋์์ธ์ ์ฌ์ฉ์์ ์ฒซ์ธ์๊ณผ ๋ง์กฑ๋์ ํฐ ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์ ์ ๊ฒฝ์จ์ผ ํ๋ค. ํ์ง๋ง ์น๋์์ธ์ ์ฒ์๋ถํฐ ๋ง๋๋ ๊ฒ์ ์ฝ์ง ์๋ค. ๋ณต์กํ CSS ์ฝ๋๋ฅผ ์์ฑํ๊ณ ๋ฐ์ํ์ผ๋ก ๋ง๋ค๊ณ ํธํ์ฑ์ ํ์ธํ๋ ๊ณผ์ ์ ๋ง์ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋์ ๋ง์ ์น ๊ฐ๋ฐ์๋ค์ Bootstrap, Foundation, Bulma, Pure.css, UIKit, Materialise, Tailwind์ ๊ฐ์ CSS ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ค. CSS ํ๋ ์์ํฌ๋ ๋ฏธ๋ฆฌ ์ ์๋ CSS ํด๋์ค์ ๊ตฌ์ฑ ์์๋ฅผ ์ ๊ณตํ์ฌ, ์ผ๊ด๋๊ณ ํ์คํ๋ ๋ฐฉ์์ผ๋ก ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๊ณ ํ๋ฆฌํฐ์ ์น๋์์ธ์ ๋ง๋ค ์ ์์ผ๋ฉฐ, ์ฌ์ฌ์ฉํ๊ณ ..
๐ first-child / first-of-type ์์ฑ ์ฐจ์ด์
first-child ์ first-of-type ์ฐจ์ด์ first-child ์ first-of-type์ ๋๊ฐ์ด ์์ ํ์ ์์ ๊ณ ๋ฅด๋๊ฒ๊ฐ์๋ฐ ๋ฌด์์ด ๋ค๋ฅผ๊น? ํ๋ฐฉ์ ์ดํดํ๊ธฐ ์ฝ๊ฒ ๊ฐ๋จ๋ช ๋ฃํ๊ฒ ์ค๋ช ํ๋ฉด ์ด๋ ๋ค. div > p:first-child 'div ํ์์ p ์์ ์ค ์ฒซ๋ฒ์งธ ์์' ๋ก ์ฝ๋ ๊ฒ ์๋๋ผ 'div ํ์์ ์ฒซ๋ฒ์งธ ์์์ธ ์์๊ฐ p ์์' ์ด๋ฉด์ด๋ค. ์ฆ, div์ ์์ ์์์ค์ first-child๋ฅผ ๊ณ ๋ฅด๋๋ฐ ๊ทธ๊ฒ p์ด๋ฉด ์คํ์ผ์ ์ ์ฉํ๋ค. ๋ง์ผ p๊ฐ ์๋ค๋ฉด ์คํ์ผ์ ์ ์ฉํ์ง ์๋๋ค. 'div first-child is p' ๋ผ๊ณ ์์ด ๋ฌธ์ฅ์ผ๋ก ์ดํดํ๋ฉด ๋๋ค. .parent > span:first-child { background: lightgreen; } .parent2 > p:fi..
๐ @media๋ ์ด์ ๊ทธ๋ง ! ์ต์ @container ์ฌ์ฉ๋ฒ
์ปจํ ์ด๋ ์ฟผ๋ฆฌ vs ๋ฏธ๋์ด ์ฟผ๋ฆฌ ์ปจํ ์ด๋ ์ฟผ๋ฆฌ๋ ๋ฏธ๋์ด ์ฟผ๋ฆฌ์ ๊ฐ์ด ๋ฌธ์์ ์คํ์ผ์ ๋ฐ์ํ์ผ๋ก ์ง์ ํ ์ ์๋ค. ์ด ๋์ ์๋ ๋ฐฉ์์ ์ ์ฌํ์ง๋ง, ์ฐจ์ด์ ์ ์ด๋ ๊ฒ์ ๊ธฐ๋ฐ์ผ๋ก ๋์๋๋๋ ์ ์ด๋ค. ์๋ฅผ๋ค์ด ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ ๋๋ฐ์ด์ค ๋๋ ๋ฏธ๋์ด ์ ํ์ ๊ธฐ๋ฐ์ผ๋ก ๋ทฐํฌํธ์ ์ํด ๋ฐ์ํ์ง๋ง, ์ปจํ ์ด๋ ์ฟผ๋ฆฌ๋ ํ์ด์ง๋ด์ ํน์ ์ปดํฌ๋ํธ ์์ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ํ๋ค. ์๋ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ์ดํด๊ฐ ๋ ํ ๋ฐ, ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ ๋ธ๋ผ์ฐ์ ๋๋น๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ์ํ์ง๋ง, ์ปจํ ์ด๋ ์ฟผ๋ฆฌ๋ ๋ฌธ์ ๋ด ๊ฐ ์์ ์ ํฌ๊ธฐ๋ ๋ชจ์์ ๋ฐ๋ผ ๋ฐ์ํ ์ฟผ๋ฆฌ๋ฅผ ์ง์ ํ ์ ์๋ค๋ ์ ์์ ์์ ํธํ์ด๋ผ๊ณ ํ ์ ์๋ค. ์ปจํ ์ด๋ ์ฟผ๋ฆฌ๊ฐ ์์์ ์์ ์๋ ์๋ฐ์คํฌ๋ฆฝํธ์ Resize Observer ๊ธฐ์ ์ ํตํด ํน์ ์์์ ํฌ๊ธฐ ๋ณํ๋ฅผ ๊ด์ฐฐํ์ฌ ์คํฌ๋ฆฝํธ๋ก ์คํ์ผ๋ง์ ํด์ฃผ์ด์ผ..
๐ CSS ์ ํ์๋ฅผ ๋ชจ๋ํ๊ฒ :where() / :is() / :has() / :not()
:where() ๊ฐ์ ์ ํ์ :where ์์ฌ ํด๋์ค ์ ํ์๋ css ์ฝ๋ฉํ ๋ ์ ํ์์ ์ค๋ณต์ ์ค์ด๋ ๋ฐ ๋์์ด ๋๋ ๋ ์์ด๋ค. ์๋ฅผ๋ค์ด ๋ค์๊ณผ ๊ฐ์ด ์ฌ๋ฌ ์๋ฆฌ๋จผํธ ์์ ์๋ anchor ํ๊ทธ์ hover ํจ๊ณผ๋ฅผ ์ฃผ๊ธฐ์ํด์ ๊ฐ ์ ํ์๋ค์ ์ฝค๋ง๋ฅผ ์ด์ด ๋์ดํ์ฌ ํํํ์ฌ์ผ ํ์๋ค. element 1 element 2 element 3 nav > ul a:hover, footer > ol a:hover, aside > p a:hover { color: purple; text-decoration: underline wavy deeppink; } ๊ทธ๋ฐ๋ฐ ์ฝ๋๋ฅผ ๋ณด๋ฉด a:hover ๋ถ๋ถ์ด ๊ฐ ์ ํ์๋ง๋ค ์ค๋ณต๋๋ ๊ฒ์ ํ์ธ ํ ์ ์์ ๊ฒ์ด๋ค. ๊ฑฐ๊ธฐ๋ค ์ ์ฉํด์ผํ ์์๊ฐ ๋ง์ผ๋ฉด ๋ง์ ์๋ก ์ ํ์์ ์๋ ๋์ด๋ ๋์ค์ ..
๐จ ๋งํ์ ๋์์ธ ์๋ ๋ง๋ค๊ธฐ ์ฌ์ดํธ
๋งํ์ ์์ฑํ๊ธฐ ์ฌ์ดํธ ๊ฐ๋จํ๊ฒ ๋งํ์ ์คํ์ผ๋ง์ ๋ฐ๋ก ๋ง๋ค์ ์๋ ์ ๋๋ ์ดํฐ์ด๋ค. ๋งํ์ ๊ผฌ๋ฆฌํ ์์น(Side) ์ ๋ชจ์(Pointer triangle) ๊ณผ ํฌ๊ธฐ(Pointer size)๋ฅผ ์ง์ ํด์ฃผ๊ณ ์์ css ์ฝ๋๋ฅผ ๋ถ์ฌ๋ฃ์ผ๋ฉด ์์ฑ๋๋ค. Bubbly CSS speech bubbles made easy! Bubbly โ CSS speech bubbles made easy projects.verou.me
๐ ์คํฌ๋กค ๋ฐ(Scrollbar) ์คํ์ผ๋ง ๐ฏ ์ด์ ๋ฆฌ
Custom Scrollbar ์คํ์ผ๋ง ์ ํ๋ธ ํํ์ด์ง๋ฅผ ๋ณด๋ฉด ์คํฌ๋กค๋ฐ๊ฐ ์ผ๋ฐ ๋ธ๋ผ์ฐ์ ์คํฌ๋กค๋ฐ์๋ ๋ฌ๋ฆฌ ๋๊ทธ๋๊ฒ ์คํ์ผ๋ง ๋์ด ์์์ ๋ณผ ์ ์๋ค. ์ด์ฒ๋ผ ์คํฌ๋กค๋ฐ ์ญ์ ๋ค๋ฅธ ์์์ฒ๋ผ CSS ์คํ์ผ๋ง์ด ๊ฐ๋ฅํ์ฌ, ๋ณด๋ค ์์ ์ ์น์ฌ์ดํธ ๋๋ณด์ผ ์ ์๊ฒ ํ์ฌ ๋ฐฉ๋ฌธ์์๊ฒ ์กฐ๊ธ ๋ ๊ธฐ์ต์ ๋จ๊ฒ ๋ง๋ค ์ ์๋ค. ๋ค๋ง ์คํฌ๋กค๋ฐ ์์๋ ์น ์ฝํ ์ธ ๊ฐ ์๋ ๋ธ๋ผ์ฐ์ ๋ด๋ถ ์ธํฐํ์ด์ค๋ก ์ทจ๊ธ๋๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ธ css ์ฌ์ฉ์ ์์ด ๊ธฐ๋ฅ์ด ์ ํ์ ์ธ ๊ฒ์ด ๋ง๋ค. ์ฐ๋ฆฌ๊ฐ ๋ธ๋ผ์ฐ์ ์ alert ์ฐฝ์ ์คํ์ผ๋ง ํ ์ ์๋ฏ์ด ๋ง์ด๋ค. ์ฆ, css๋ฅผ ์ฌ์ฉํ์ฌ ๋ธ๋ผ์ฐ์ ์คํฌ๋กค๋ฐ ์๊น์ด๋ ๋๊ป๋ฅผ ๋ฐ๊ฟ ์๋ ์์ผ๋ ์ด์ธ์ ๋ณต์กํ ์คํ์ผ๋ง์๋ ์ ํ์ ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. ํนํ ์ ์ํด์ผ ํ ์ ์ CSS scrollbar ๊ด๋ จ ์ ํ์๋ค์ ํ์ค์ด ์๋..
๐น๏ธ CSS ์์ ์ํ/์์ง ์ ๋ ฌ ๊ธฐ๋ฒ ๋ชจ์
์ํ ์ค์ ์ ๋ ฌ ๐ข inline / inline-block ์์ ์ ๋ ฌ ๋์ ์์(inline)์ ๋ถ๋ชจ ์์(block)์ text-align: center;๋ฅผ ์ง์ ํ๋ค. inline, inline-block, inline-table, inline-flex, ๊ธฐํ ๋ฑ๋ฑ์ ์ ์ฉ๋๋ค. One Two Three Four โ ์์์์๊ฐ block์์์ด๋ฉด, ๊ฐ์ ๋ก ์์์์๋ฅผ inline-block์์๋ก ๋ง๋ค์ด์ฃผ๋ ๋ฐฉ๋ฒ๋ ์๋ค. I'm an element that is block-like with my siblings and we're centered in a row. I'm an element that is block-like with my siblings and we're centered in a row. I h..
[CSS] ๐จ ๋ก๊ทธ์ธ / ํ์๊ฐ์ ํ์ด์ง ๋์์ธ ์คํ์ผ ๋ชจ์
Codepen์์ ๊ด์ฐฎ์ ๋์์ธ์ ๋ฝ๋ด๋ CSS ํ ํ๋ฆฟ์ค์ ๋ก๊ทธ์ธ ๋ฐ ํ์๊ฐ์ ํ์ด์ง ๋์์ธ ์์๋ค ๋ชจ์ ๊ฐ์ถ๋ ค ํฌ์คํ ํด๋ณด์๋ค. ๊ธํ๊ฒ CSS ํ ํ๋ฆฟ์ ์ฐพ์ผ๋ฉด์๋ ๋ชจ๋ํ๋ฉด์๋ ์ค์ํ ๋์์ธ ์์๋ฅผ ์ํ ๋ ์ข์ ์ฐธ๊ณ ๊ฐ ๋๊ธฐ๋ฅผ ๋ฐ๋๋ค. ๋ก๊ทธ์ธ / ํ์๊ฐ์ ํ์ด์ง See the Pen Weekly Coding Challenge #1 - Double slider Sign in/up Form - Desktop Only by RH2O (@Rh2o) on CodePen. See the Pen Neumorphic sign-up / sign-in form by Shruti (@Shruti-Ag) on CodePen. See the Pen Slide Sign In/Sign Up form by Danielkvist (@d..
[CSS] ๐จ ๋ฒํผ(Button) ๋์์ธ ์คํ์ผ ๋ชจ์
Codepen์์ ๊ด์ฐฎ์ ๋์์ธ์ ๋ฝ๋ด๋ CSS ํ ํ๋ฆฟ์ค์ ๋ฒํผ ๋์์ธ ์์๋ค ๋ชจ์ ๊ฐ์ถ๋ ค ํฌ์คํ ํด๋ณด์๋ค. ๊ธํ๊ฒ CSS ํ ํ๋ฆฟ์ ์ฐพ์ผ๋ฉด์๋ ๋ชจ๋ํ๋ฉด์๋ ์ค์ํ ๋์์ธ ์์๋ฅผ ์ํ ๋ ์ข์ ์ฐธ๊ณ ๊ฐ ๋๊ธฐ๋ฅผ ๋ฐ๋๋ค. ๋ฌด๋ํ ๋ฒํผ ์ปฌ๋ ์ ๊ณผํ์ง๋ ํ์ง๋ ์์ ์ ๋นํ ์ด์ ๋ฒํผ๋ค์ด๋ค. See the Pen Cool Buttons by Felipe Marcos (@FelipeMarcos) on CodePen. See the Pen Collection CSS3 buttons by Andrรฉs Bedoya (@Angelfire) on CodePen. See the Pen Candy Color Button Animation by Yuhomyan (@yuhomyan) on CodePen. See the Pen Butto..
[CSS] ๐จ ํ ์ด๋ธ(Table) ๋์์ธ ์คํ์ผ ๋ชจ์
Codepen์์ ๊ด์ฐฎ์ ๋์์ธ์ ๋ฝ๋ด๋ CSS ํ ํ๋ฆฟ์ค์ ํ ์ด๋ธ(Table) ๋์์ธ ์คํ์ผ(style) ์์๋ค ๋ชจ์ ๊ฐ์ถ๋ ค ํฌ์คํ ํด๋ณด์๋ค. ๊ธํ๊ฒ CSS ํ ํ๋ฆฟ์ ์ฐพ์ผ๋ฉด์๋ ๋ชจ๋ํ๋ฉด์๋ ์ค์ํ ๋์์ธ ์์๋ฅผ ์ํ ๋ ์ข์ ์ฐธ๊ณ ๊ฐ ๋๊ธฐ๋ฅผ ๋ฐ๋๋ค. ํ ์ด๋ธ ๋ชจ์ See the Pen Advanced and accessible tables by Germรกn Freixinรณs Lรณpez (@germanfrelo) on CodePen. See the Pen CSS responsive table with fixed column and row headers and scroll snap by Scott Jehl (@scottjehl) on CodePen. See the Pen Responsive Table Sass M..
๐ ๋ฏธ๋์ด ์ฟผ๋ฆฌ ๋ฒ์ ์ง์ ์ต์ ๋ฌธ๋ฒ (๊ฐํธํด์ง โ)
CSS media query ๋ฒ์ ์ต์ ๋ฌธ๋ฒ CSS์์ ๋ฐ์ํ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ๋ ๊ฐ์ฅ ์ดํด๊ฐ ์๋์๋ ์ ์ด ๋ฐ๋ก ๋ฏธ๋์ด ์ฟผ๋ฆฌ์ width, height ๋ฒ์ ์ง์ ๋ฌธ๋ฒ์ด๋ค. ์ ๋งํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๋ฒ์ ์ง์ ์ ๊ธฐํธ๋ฅผ ํตํด ๋ฒ์์ง์ ์ ํ์ง๋ง CSS์์๋ ๋ฏธ๋์ด ์ฟผ๋ฆฌ ๋ฒ์ ์ง์ ์ ๋ค์๊ณผ ๊ฐ์ด ํ์๋ค. ์ ํํ max-width ๊ฐ ์๋ฏธํ๋ ๊ฒ์ด '์ด์' ์ธ์ง '์ดํ' ์ด์๋์ง ์ ๊น ๋ฌธ๋ฒ์ด ํ๊น๋ฆด ๋๋ ์์์ผ๋ฉฐ, ๊ธฐ๋ณธ์ ์ผ๋ก '๊ฐ๊ฑฐ๋ ์๋ค' ๋ก ํต์ฉ๋๊ธฐ ๋๋ฌธ์ ๋ง์ผ '๋ฌด์กฐ๊ฑด ์๋ค' ๋ก ์ค์ ํ๋ ค๋ฉด, ์๋์ ๊ฐ์ด 319.99px ๋ก ์ง์ ํด์ผ๋ ์ฐํํ๋ ๋ฐฉ๋ฒ์ ์จ์ผ ํ๋ค. /* viewports
๐ ์ด๋ฏธ์ง ์ฌ์ด์ฆ ๋น์จ ๋ง์ถ๋ 3๊ฐ์ง ๋ฐฉ๋ฒ (object-fit / background-size / position)
ํ๋ก ํธ๋ฅผ ์์ ํ ๋, ์ปจํ ์ด๋์ ํฌ๊ธฐ๋ ๊ณ ์ ๋์ด ์๋๋ฐ, ํด๋น ์ปจํ ์ด๋ ์์ ๋ค์ด๊ฐ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ ๋ค์ํ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์๋ฅผ๋ค์ด ์ด๋ฏธ์ง๋ฅผ ํ๋/์ถ์ ํ๊ฑฐ๋ ํน์ ๋น์จ๋ก ๋ํ๋๊ฒ ํ๊ธฐ์ํด, CSS๋ฅผ ์ด์ฉํ์ฌ ๋ ์์๊ฐ์ ์ค๋ธ์ ํธ๋ค์ ์กฐ์ ํด์ผ ๋๋๋ฐ ๋ฐฉ๋ฒ์ด ๊ฒฐ์ฝ ๋ น๋ก์น ์๋ค. ์ด๋ฒ ์๊ฐ์๋ background-img ํน์ ํ๊ทธ๋ก ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์, ๋ด๊ฐ ์ํ๋ ์ฌ์ด์ฆ์ ๋ฐ์ค ์์ ์ด๋ฏธ์ง ์ปจํ ์ธ ๋ฅผ ๋ฐฐ์นํ๊ณ ๋น์จ์ ์กฐ์ ํด ๊พธ๋ฐ๋, ์ด๋ค css ์์ฑ์ ์ฌ์ฉํ์ฌ ๋ค๋ฃจ๋์ง 3๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ํด ํ๋ฐฉ ์ ๋ฆฌํ๋ ์๊ฐ์ ๊ฐ์ ธ๋ณด์. background ์์ฑ์ ์ด์ฉํด ์กฐ์ background-size ์์ฑ ๋จผ์ css์ background-img : url() ์์ฑ์ ํตํด ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์ ์ฌ์ฉํ ๋, ์ฌ์ด์ฆ๋ฅผ ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ ์์..