๐Ÿ—‚๏ธ CSS ์š”์•ฝ์ •๋ฆฌ

๊น€์ˆ˜์ง„ยท2025๋…„ 5์›” 11์ผ

CSS๋ž€?

HTML์ด๋‚˜ XML๊ณผ ๊ฐ™์€ ๊ตฌ์กฐํ™” ๋œ ๋ฌธ์„œ(Document)๋ฅผ ํ™”๋ฉด, ์ข…์ด ๋“ฑ์— ์–ด๋–ป๊ฒŒ ๋ Œ๋”๋งํ•  ๊ฒƒ์ธ์ง€๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•œ ์–ธ์–ด

1. ๊ตฌ์„ฑ์š”์†Œ

1.1 ์…€๋ ‰ํ„ฐ

์Šคํƒ€์ผ์„ ์ ์šฉํ•  HTML ์š”์†Œ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

1.2 ํ”„๋กœํผํ‹ฐ

์–ด๋–ค ์Šคํƒ€์ผ(์˜ˆ: ์ƒ‰์ƒ, ๊ธ€์ž ํฌ๊ธฐ ๋“ฑ)์„ ์ ์šฉํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ํ‚ค

1.3 ๊ฐ’

ํ”„๋กœํผํ‹ฐ์— ํ• ๋‹น๋˜๋Š” ๊ตฌ์ฒด์ ์ธ ์„ค์ •๊ฐ’(์˜ˆ: red, 16px ๋“ฑ)

1.4 HTML & CSS ์—ฐ๋™

HTML์— CSS๋ฅผ ์ ์šฉํ•˜๋Š” ์„ธ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•

์™ธ๋ถ€ .css ํŒŒ์ผ์„ <link> ํƒœ๊ทธ๋กœ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

1.4.2 embedding style

๋ฌธ์„œ <head> ์•ˆ์— <style> ํƒœ๊ทธ๋กœ CSS ์ง์ ‘ ์ž‘์„ฑ

1.4.3 inline style

HTML ์š”์†Œ์— style="โ€ฆ" ์†์„ฑ ์•ˆ์— CSS ์ž‘์„ฑ

2. ์…€๋ ‰ํ„ฐ

2.1 ์ „์ฒด ์…€๋ ‰ํ„ฐ

* : ๋ฌธ์„œ ๋‚ด ๋ชจ๋“  ์š”์†Œ ์„ ํƒ

2.2 ํƒœ๊ทธ ์…€๋ ‰ํ„ฐ

ํƒœ๊ทธ๋ช… : ํ•ด๋‹น ํƒœ๊ทธ๋ฅผ ๊ฐ€์ง„ ๋ชจ๋“  ์š”์†Œ ์„ ํƒ

2.3 ID ์…€๋ ‰ํ„ฐ

#id๊ฐ’ : ์œ ์ผํ•œ ID ์†์„ฑ ๊ฐ’์„ ๊ฐ€์ง„ ์š”์†Œ ์„ ํƒ

2.4 ํด๋ž˜์Šค ์…€๋ ‰ํ„ฐ

.class attribute ๊ฐ’ : ์ง€์ •ํ•œ ํด๋ž˜์Šค ์†์„ฑ์„ ๊ฐ€์ง„ ์š”์†Œ ์„ ํƒ

2.5 attribute ์…€๋ ‰ํ„ฐ

[attr] : ํ•ด๋‹น ์†์„ฑ์„ ๊ฐ€์ง„ ์š”์†Œ ์„ ํƒ

[attr="๊ฐ’"]: ์ง€์ •๋œ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋ฅผ ๊ฐ€์ง€๋ฉฐ ์ง€์ •๋œ ๊ฐ’๊ณผ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ์˜ ๊ฐ’์ด ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  ์š”์†Œ ์„ ํƒ
[attr~="๊ฐ’"]: ์ง€์ •๋œ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ์˜ ๊ฐ’์ด ์ง€์ •๋œ ๊ฐ’์„ (๊ณต๋ฐฑ์œผ๋กœ ๋ถ„๋ฆฌ๋œ) ๋‹จ์–ด๋กœ ํฌํ•จํ•˜๋Š” ์š”์†Œ ์„ ํƒ
[attr|="๊ฐ’"]:์ง€์ •๋œ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ์˜ ๊ฐ’๊ณผ ์ผ์น˜ํ•˜๊ฑฐ๋‚˜ ์ง€์ • ์–ดํŠธ๋ฆฌ๋ทฐํŠธ ๊ฐ’ ๋’ค ์—ฐ์ด์€ ํ•˜์ดํ”ˆ(โ€œ๊ฐ’-โ€œ)์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์š”์†Œ ์„ ํƒ
[attr^="๊ฐ’"] : ์ง€์ •๋œ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ ๊ฐ’์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์š”์†Œ ์„ ํƒ
[attr$="๊ฐ’"]: ์ง€์ •๋œ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ ๊ฐ’์œผ๋กœ ๋๋‚˜๋Š” ์š”์†Œ ์„ ํƒ
[attr*="๊ฐ’"] : ์ง€์ •๋œ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ ๊ฐ’์„ ํฌํ•จํ•˜๋Š” ์š”์†Œ ์„ ํƒ

2.6 ๋ณตํ•ฉ ์…€๋ ‰ํ„ฐ

2.6.1 ํ›„์† ์…€๋ ‰ํ„ฐ

A B : A ์š”์†Œ์˜ ๋ชจ๋“  ํ•˜์œ„(ํ›„์†) ์ค‘ B ์š”์†Œ ์„ ํƒ

/* div ์š”์†Œ์˜ ํ›„์†์š”์†Œ ์ค‘ p ์š”์†Œ */
    div p { color: red; }

2.6.2 ์ž์‹ ์…€๋ ‰ํ„ฐ

A > B : A ์š”์†Œ์˜ ์ง๊ณ„ ์ž์‹ ์ค‘ B ์š”์†Œ ์„ ํƒ

 /* div ์š”์†Œ์˜ ์ž์‹์š”์†Œ ์ค‘ p ์š”์†Œ */
    div > p { color: red; }

2.6.3 ํ˜•์ œ(๋™์œ„) ์…€๋ ‰ํ„ฐ

2.6.3.1 ์ธ์ ‘ ํ˜•์ œ ์…€๋ ‰ํ„ฐ

A + B : A ๋ฐ”๋กœ ๋‹ค์Œ ํ˜•์ œ์ธ B ์š”์†Œ ์„ ํƒ

/* p ์š”์†Œ์˜ ํ˜•์ œ ์š”์†Œ ์ค‘์— p ์š”์†Œ ๋ฐ”๋กœ ๋’ค์— ์œ„์น˜ํ•˜๋Š” ul ์š”์†Œ๋ฅผ ์„ ํƒํ•œ๋‹ค. */
    p + ul { color: red; }

2.6.3.2 ์ผ๋ฐ˜ ํ˜•์ œ ์…€๋ ‰ํ„ฐ

A ~ B : A ์ดํ›„์— ๋‚˜์˜ค๋Š” ๋ชจ๋“  ํ˜•์ œ B ์š”์†Œ ์„ ํƒ

/* p ์š”์†Œ์˜ ํ˜•์ œ ์š”์†Œ ์ค‘์— p ์š”์†Œ ๋’ค์— ์œ„์น˜ํ•˜๋Š” ul ์š”์†Œ๋ฅผ ๋ชจ๋‘ ์„ ํƒํ•œ๋‹ค.*/
    p ~ ul { color: red; }

2.7 ๊ฐ€์ƒ ํด๋ž˜์Šค ์…€๋ ‰ํ„ฐ

์ฝœ๋ก (:)์„ ์‚ฌ์šฉ

2.7.1 ๋งํฌ ์…€๋ ‰ํ„ฐ & ๋™์  ์…€๋ ‰ํ„ฐ

์…€๋ ‰ํ„ฐ์„ค๋ช…
:link๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๋งํฌ ์š”์†Œ
:visited๋ฐฉ๋ฌธํ•œ ๋งํฌ ์š”์†Œ
:hover๋งˆ์šฐ์Šค๊ฐ€ ์˜ฌ๋ผ์™€ ์žˆ๋Š” ์š”์†Œ
:activeํด๋ฆญ๋˜์–ด ํ™œ์„ฑํ™”๋œ ์š”์†Œ
:focusํฌ์ปค์Šค๊ฐ€ ๋“ค์–ด์™€ ์žˆ๋Š” ์š”์†Œ

2.7.2 UI ์š”์†Œ ์ƒํƒœ ์…€๋ ‰ํ„ฐ

์…€๋ ‰ํ„ฐ์„ค๋ช…
:checked์ฒดํฌ๋œ ์ƒํƒœ์ธ ์š”์†Œ
:enabled์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ(ํ™œ์„ฑํ™”๋œ) ์š”์†Œ
:disabled์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅ(๋น„ํ™œ์„ฑํ™”) ์š”์†Œ

2.7.3 ๊ตฌ์กฐ ๊ฐ€์ƒ ํด๋ž˜์Šค ์…€๋ ‰ํ„ฐ

์…€๋ ‰ํ„ฐ์„ค๋ช…
:first-child๋ถ€๋ชจ ์š”์†Œ ๋‚ด์—์„œ ํ•ด๋‹น ์…€๋ ‰ํ„ฐ์— ์ผ์น˜ํ•˜๋Š” ์š”์†Œ ์ค‘ ์ฒซ๋ฒˆ์งธ ์ž์‹ ์š”์†Œ ์„ ํƒ
:last-child๋ถ€๋ชจ ์š”์†Œ ๋‚ด์—์„œ ํ•ด๋‹น ์…€๋ ‰ํ„ฐ์— ์ผ์น˜ํ•˜๋Š” ์š”์†Œ ์ค‘ ๋งˆ์ง€๋ง‰ ์ž์‹ ์š”์†Œ ์„ ํƒ

2.7.4 ๋ถ€์ • ์…€๋ ‰ํ„ฐ

์…€๋ ‰ํ„ฐ์„ค๋ช…
:not(์…€๋ ‰ํ„ฐ)ํ•ด๋‹น ์…€๋ ‰ํ„ฐ์— ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ์š”์†Œ๋ฅผ ์„ ํƒ

2.7.5 ์ •ํ•ฉ์„ฑ ์ฒดํฌ ์…€๋ ‰ํ„ฐ

์…€๋ ‰ํ„ฐ์„ค๋ช…
:valid์ •ํ•ฉ์„ฑ ๊ฒ€์ฆ์ด ์„ฑ๊ณตํ•œ input ๋˜๋Š” form ์š”์†Œ ์„ ํƒ
:invalid์ •ํ•ฉ์„ฑ ๊ฒ€์ฆ์ด ์‹คํŒจํ•œ input ๋˜๋Š” form ์š”์†Œ ์„ ํƒ

2.8 ๊ฐ€์ƒ ์š”์†Œ ์…€๋ ‰ํ„ฐ

์…€๋ ‰ํ„ฐ์„ค๋ช…
::first-letter์ฝ˜ํ…์ธ ์˜ ์ฒซ๊ธ€์ž ์„ ํƒ
::first-line์ฝ˜ํ…์ธ ์˜ ์ฒซ์ค„ ์„ ํƒ (๋ธ”๋ก ์š”์†Œ์—๋งŒ ์ ์šฉ)
::before์ฝ˜ํ…์ธ  ์•ž์— ์ง€์ •๋œ ๋‚ด์šฉ ์‚ฝ์ž… (์ฃผ๋กœ content ํ”„๋กœํผํ‹ฐ์™€ ์‚ฌ์šฉ)
::after์ฝ˜ํ…์ธ  ๋’ค์— ์ง€์ •๋œ ๋‚ด์šฉ ์‚ฝ์ž… (์ฃผ๋กœ content ํ”„๋กœํผํ‹ฐ์™€ ์‚ฌ์šฉ)
::selection๋“œ๋ž˜๊ทธํ•˜์—ฌ ์„ ํƒ๋œ ์ฝ˜ํ…์ธ  ์Šคํƒ€์ผ๋ง

3. CSS ํ”„๋กœํผํ‹ฐ ๊ฐ’์˜ ๋‹จ์œ„

3.1 ํ‚ค์›Œ๋“œ

ํ”„๋กœํผํ‹ฐ๋งˆ๋‹ค ๋ฏธ๋ฆฌ ์ •์˜๋œ ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉ
์˜ˆ) display: block, position: absolute, overflow: hidden ๋“ฑ

3.2 ํฌ๊ธฐ ๋‹จ์œ„

3.2.1 px

ํ™”์†Œ ๋‹จ์œ„
1px = ๋ธŒ๋ผ์šฐ์ € ๊ธฐ์ค€ 1/96์ธ์น˜
์š”์†Œ ํฌ๊ธฐยท์ด๋ฏธ์ง€ ํฌ๊ธฐ ์ง€์ •์— ์ฃผ๋กœ ์‚ฌ์šฉ

3.2.2 %

๋ถ€๋ชจ ์š”์†Œ ํ˜น์€ ์ƒ์†๋œ ๊ฐ’์— ๋Œ€ํ•œ ๋ฐฑ๋ถ„์œจ
๊ธ€์ž ํฌ๊ธฐ, ๋„ˆ๋น„ยท๋†’์ด, ํŒจ๋”ฉ ๋“ฑ ๋‹ค์–‘ํ•œ ํ”„๋กœํผํ‹ฐ์— ์‚ฌ์šฉ

3.2.3 em

ํ˜„์žฌ ์š”์†Œ์˜ font-size๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•œ ๋ฐฐ์ˆ˜ ๋‹จ์œ„
์ƒ์†๋ฐ›์€ font-size๊ฐ€ ๋ฐ”๋€Œ๋ฉด ๊ฐ’๋„ ๋ณ€๋™ํ•˜๋ฏ€๋กœ ์ค‘์ฒฉ ์‹œ ์ฃผ์˜

3.2.4 rem

์ตœ์ƒ์œ„ ๋ฃจํŠธ(html)์˜ font-size๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•œ ๋ฐฐ์ˆ˜ ๋‹จ์œ„
rem์€ ์ƒ์†์— ์˜ํ–ฅ๋ฐ›์ง€ ์•Š์•„ ์ผ๊ด€๋œ ์ƒ๋Œ€ ํฌ๊ธฐ ์ง€์ •์— ์œ ๋ฆฌ

3.2.5 Viewport ๋‹จ์œ„(vh, vw, vmin, vmax)

๋‹จ์œ„์„ค๋ช…
vwviewport ๋„ˆ๋น„์˜ 1/100
vhviewport ๋†’์ด์˜ 1/100
vminviewport ๋„ˆ๋น„์™€ ๋†’์ด ์ค‘ ์ž‘์€ ์ชฝ์˜ 1/100
vmaxviewport ๋„ˆ๋น„์™€ ๋†’์ด ์ค‘ ํฐ ์ชฝ์˜ 1/100

3.3 ์ƒ‰์ƒ ํ‘œํ˜„ ๋‹จ์œ„

CSS์—์„œ ์ƒ‰์ƒ์„ ์ง€์ •ํ•˜๋Š” ์ฃผ์š” ๋ฐฉ์‹

ํ‘œํ˜„ ๋ฐฉ์‹์˜ˆ์‹œ
HEX#000000
RGBrgb(255, 255, 0)
RGBArgba(255, 255, 0, 1)
HSLhsl(0, 100%, 25%)
HSLAhsla(60, 100%, 50%, 1)

3.3.1 color keywords

์ฐธ๊ณ : https://html-color.codes/

4. ๋ฐ•์Šค ๋ชจ๋ธ

Content, Padding, Border, Margin์œผ๋กœ ๊ตฌ์„ฑ

4.1 width / height ํ”„๋กœํผํ‹ฐ

width, height: ์ฝ˜ํ…์ธ  ์˜์—ญ์˜ ๋„ˆ๋น„์™€ ๋†’์ด๋ฅผ ์ง€์ •

 <style>
    div {
      width: 300px;
      height: 100px;
      background-color: cornsilk;
      border: 5px solid navy;
    }
  </style

overflow: hidden;์„ ์ง€์ •ํ•˜๋ฉด ๋„˜์นœ ์ฝ˜ํ…์ธ ๋ฅผ ๊ฐ์ถœ ์ˆ˜ ์žˆ๋‹ค.
auto ๊ธฐ๋ณธ๊ฐ’: ๋ธ”๋ก ์š”์†Œ๋Š” ๋ถ€๋ชจ ๋„ˆ๋น„ 100%, ๋†’์ด๋Š” ์ฝ˜ํ…์ธ ์— ๋”ฐ๋ผ ๊ฒฐ์ •

4.2 margin / padding ํ”„๋กœํผํ‹ฐ

content์˜ 4๊ฐœ ๋ฐฉํ–ฅ(top, right, left, bottom)์— ๋Œ€ํ•˜์—ฌ ์ง€์ •

margin/adding: top, right, bottom, left;: margin, padding 1๊ฐœ์˜ ํ”„๋กœํผํ‹ฐ๋งŒ์œผ๋กœ 4๋ฐฉํ–ฅ์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ํ•œ๋ฒˆ์— ์ง€์ • ๊ฐ€๋Šฅ

margin: auto; : ์ˆ˜ํ‰ ์ค‘์•™ ์ •๋ ฌ

max-width/min-width : ๋ฐ˜์‘ํ˜• ๋„ˆ๋น„ ์ œ์–ด

4.3 border ํ”„๋กœํผํ‹ฐ

4.3.1 border-style

ํ…Œ๋‘๋ฆฌ ์„ ์˜ ์Šคํƒ€์ผ ์ง€์ •

4.3.2 border-width

ํ…Œ๋‘๋ฆฌ์˜ ๋‘๊ป˜ ์ง€์ •
border-style ์™€ ๋ฐ˜๋“œ์‹œ ํ•จ๊ป˜ ์‚ฌ์šฉ

4.3.3 border-color

ํ…Œ๋‘๋ฆฌ์˜ ์ƒ‰์ƒ์„ ์ง€์ •
border-style ์™€ ๋ฐ˜๋“œ์‹œ ํ•จ๊ป˜ ์‚ฌ์šฉ

4.3.4 border-radius

ํ…Œ๋‘๋ฆฌ ๋ชจ์„œ๋ฆฌ๋ฅผ ๋‘ฅ๊ธ€๊ฒŒ ํ‘œํ˜„ํ•˜๋„๋ก ์ง€์ •

4.4 box-sizing ํ”„๋กœํผํ‹ฐ

width, height ํ”„๋กœํผํ‹ฐ์˜ ๋Œ€์ƒ ์˜์—ญ ๋ณ€๊ฒฝ

5. display, visibility, opacity ํ”„๋กœํผํ‹ฐ

5.1 display ํ”„๋กœํผํ‹ฐ

ํ”„๋กœํผํ‹ฐ๊ฐ’ ํ‚ค์›Œ๋“œ์„ค๋ช…
blockblock ํŠน์„ฑ์„ ๊ฐ€์ง€๋Š” ์š”์†Œ๋กœ ์ง€์ •
inlineinline ํŠน์„ฑ์„ ๊ฐ€์ง€๋Š” ์š”์†Œ๋กœ ์ง€์ •
inline-blockinline-block ํŠน์„ฑ์„ ๊ฐ€์ง€๋Š” ์š”์†Œ๋กœ ์ง€์ •
none์š”์†Œ๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜์ง€ ์•Š์Œ (๊ณต๊ฐ„๋„ ์‚ฌ๋ผ์ง)

5.1.1 block ๋ ˆ๋ฒจ ์š”์†Œ

ํŠน์ง•:
ํ•ญ์ƒ ์ƒˆ๋กœ์šด ๋ผ์ธ์—์„œ ์‹œ์ž‘
ํ™”๋ฉด ์ „์ฒด ๊ฐ€๋กœํญ์„ ์ฐจ์ง€ (width: 100%)
width, height, margin, padding ์ง€์ • ๊ฐ€๋Šฅ
๋‚ด๋ถ€์— inline ์š”์†Œ ํฌํ•จ ๊ฐ€๋Šฅ

์˜ˆ์‹œ ์š”์†Œ:
div, `h1~h6, p, ol, ul, li,hr, table, form

<div>
  <h2>๋ธ”๋ก ๋ ˆ๋ฒจ ์š”์†Œ</h2>
  <p>width, height ๋ฏธ์ง€์ • โ†’ width: 100%; height: auto;</p>
</div>
<div style="width: 300px;">
  <h2>๋ธ”๋ก ๋ ˆ๋ฒจ ์š”์†Œ</h2>
  <p>width: 300px โ†’ width: 300px; height: auto;</p>
</div>

5.1.2 inline ๋ ˆ๋ฒจ ์š”์†Œ

ํŠน์ง•:
์ƒˆ๋กœ์šด ์ค„๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š์Œ
๋‚ด์šฉ ๋„ˆ๋น„๋งŒํผ๋งŒ ๊ณต๊ฐ„ ์ฐจ์ง€
width, height, margin-top, margin-bottom ์ง€์ • ๋ถˆ๊ฐ€ (์ƒํ•˜ ์—ฌ๋ฐฑ์€ line-height๋กœ ์กฐ์ •)
๋’ค์— ๊ณต๋ฐฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ž๋™ space ๋ฐœ์ƒ
๋‚ด๋ถ€์— block ์š”์†Œ ํฌํ•จ ๋ถˆ๊ฐ€

์˜ˆ์‹œ ์š”์†Œ:
span, a, strong, img, br, input, select, textarea, button

<h1>My <span>Important</span> Heading</h1>
<span>Inline</span><span>Inline</span><span>Inline</span>

5.1.3 inline-block ๋ ˆ๋ฒจ ์š”์†Œ

ํŠน์ง•:
inline ์š”์†Œ์ฒ˜๋Ÿผ ํ•œ ์ค„์— ํ‘œ์‹œ๋˜๋ฉฐ ์ค„ ๋ฐ”๊ฟˆ ์—†์Œ
block ์š”์†Œ์ฒ˜๋Ÿผ width, height, margin, padding ์ง€์ • ๊ฐ€๋Šฅ
๋’ค์— ๊ณต๋ฐฑ(์ŠคํŽ˜์ด์Šค, ์—”ํ„ฐ ๋“ฑ) ์‹œ ์ž๋™ space ๋ฐœ์ƒ
์ƒํ•˜ ์—ฌ๋ฐฑ์€ margin๊ณผ line-height ๋ชจ๋‘๋กœ ์ œ์–ด ๊ฐ€๋Šฅ

<div class="inline-block box1">inline-block height 70px</div>
<div class="inline-block box2">inline-block height 150px</div>

<div class="wrapper">
  <div class="inline-block box1">inline-block height 70px</div>
  <div class="inline-block box2">inline-block height 150px</div>
</div>

5.2 visibility ํ”„๋กœํผํ‹ฐ

์š”์†Œ์˜ ๊ฐ€์‹œ์„ฑ์„ ์ •์˜ํ•˜๋ฉฐ, ์š”์†Œ๋ฅผ ๋ Œ๋”๋งํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •

ํ”„๋กœํผํ‹ฐ๊ฐ’ ํ‚ค์›Œ๋“œ์„ค๋ช…
visible์š”์†Œ๋ฅผ ๋ณด์ด๊ฒŒ ํ•จ (๊ธฐ๋ณธ๊ฐ’)
hidden์š”์†Œ๋ฅผ ๋ณด์ด์ง€ ์•Š๊ฒŒ ํ•จ (๊ณต๊ฐ„์€ ๋‚จ์Œ)
collapsetable ์š”์†Œ์˜ ํ–‰/์—ด์„ ์ˆจ๊น€
noneIE/ํŒŒ์ด์–ดํญ์Šค์—์„œ table์˜ row/column์„ ์ˆจ๊น€ (ํฌ๋กฌ์€ hidden๊ณผ ๋™์ผ)

5.3 opacity ํ”„๋กœํผํ‹ฐ

์š”์†Œ์˜ ํˆฌ๋ช…๋„๋ฅผ ์„ค์ • (0.0~1.0)
๋ถ€๋“œ๋Ÿฌ์šด ์ „ํ™˜์„ ์œ„ํ•œ transition์‚ฌ์šฉ

<div>opacity: 0.5</div>
<img src="https://web.com/img.jpg" alt="image">

6. ๋ฐฑ๊ทธ๋ผ์šด๋“œ

6.1 background-image ํ”„๋กœํผํ‹ฐ

์š”์†Œ์˜ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€๋ฅผ ์ง€์ • (url() ์‚ฌ์šฉ)

6.2 background-repeat ํ”„๋กœํผํ‹ฐ

์ด๋ฏธ์ง€ ๋ฐ˜๋ณต ๋ฐฉ์‹ ์„ค์ •
repeat
repeat-x: x์ถ• ๋ฐ˜๋ณต
repeat-y: y์ถ• ๋ฐ˜๋ณต
no-repeat: ๋ฐ˜๋ณต ์ถœ๋ ฅ ๋ฉˆ์ถœ ๋•Œ ์‚ฌ์šฉ

6.3 background-size ํ”„๋กœํผํ‹ฐ

์ด๋ฏธ์ง€ ํฌ๊ธฐ ์ง€์ • (width height): px, %, ๋˜๋Š” ํ•˜๋‚˜๋งŒ ์ง€์ • ์‹œ auto

cover: ๋น„์œจ ์œ ์ง€ํ•˜๋ฉฐ ์š”์†Œ๋ฅผ ๋ฎ๋„๋ก ํ™•๋Œ€ (์ผ๋ถ€ ๊ฐ€๋ ค์งˆ ์ˆ˜ ์žˆ์Œ)
contain: ๋น„์œจ ์œ ์ง€ํ•˜๋ฉฐ ์ „์ฒด๊ฐ€ ๋ณด์ด๊ฒŒ ์ถ•์†Œ

6.4 background-attachment ํ”„๋กœํผํ‹ฐ

์Šคํฌ๋กค ์‹œ ๋ฐฐ๊ฒฝ ๊ณ ์ • ์—ฌ๋ถ€
fixed ํ‚ค์›Œ๋“œ๋กœ ๊ณ ์ •

6.5 background-position ํ”„๋กœํผํ‹ฐ

๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€์˜ ์ดˆ๊ธฐ ์ขŒํ‘œ ์„ค์ • (xpos ypos)
ํ‚ค์›Œ๋“œ(top, bottom, left, right, center), %, px ๋ชจ๋‘ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
background-position: 0% 0%;๋กœ ์ง€์ •

6.6 background-color ํ”„๋กœํผํ‹ฐ

์š”์†Œ์˜ ๋ฐฐ๊ฒฝ ์ƒ‰์ƒ ์ง€์ • (์ƒ‰์ƒ๊ฐ’ ๋˜๋Š” transparent)

6.7 background Shorthand

์—ฌ๋Ÿฌ ๋ฐฐ๊ฒฝ ์†์„ฑ์„ ํ•œ๊บผ๋ฒˆ์— ์ •์˜

์ˆœ์„œ: background: [color] || [image] || [repeat] || [attachment] || [position]

7. ํฐํŠธ์™€ ํ…์ŠคํŠธ

7.1 font-size ํ”„๋กœํผํ‹ฐ

ํ…์ŠคํŠธ ํฌ๊ธฐ ์ •์˜

7.2 font-family ํ”„๋กœํผํ‹ฐ

ํฐํŠธ ์ง€์ •
ํฐํŠธ๋ช…์€ ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ์ฃผ๋ฉฐ ํฐํŠธ๋ช…์ด ํ•œ๋‹จ์–ด์ธ ๊ฒฝ์šฐ๋Š” ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ์ฃผ์ง€ ์•Š์Œ

7.3 font-style / font-weight ํ”„๋กœํผํ‹ฐ

font-style ํ”„๋กœํผํ‹ฐ๋Š” ์ดํƒค๋ฆญ์ฒด์˜ ์ง€์ •, font-weight ํ”„๋กœํผํ‹ฐ๋Š” ํฐํŠธ ๊ตต๊ธฐ ์ง€์ •

7.4 font Shorthand

์ˆœ์„œ: font : font-style(optional) font-variant(optional) font-weight(optional) font-size(mandatory) line-height(optional) font-family(mandatory)

7.5 line-height ํ”„๋กœํผํ‹ฐ

ํ…์ŠคํŠธ ๋†’์ด ์ง€์ •

7.6 letter-spacing ํ”„๋กœํผํ‹ฐ

๊ธ€์ž ์‚ฌ์ด ๊ฐ„๊ฒฉ ์ง€์ •

7.7 text-align ํ”„๋กœํผํ‹ฐ

ํ…์ŠคํŠธ ์ˆ˜ํ‰ ์ •๋ ฌ

7.8 text-decoration ํ”„๋กœํผํ‹ฐ

๋งํฌ underline์„ ์ œ๊ฑฐ
underline, overline, line-through ์ถ”๊ฐ€ ๊ฐ€๋Šฅ

7.9 white-space ํ”„๋กœํผํ‹ฐ

๊ณต๋ฐฑ(space), ๋“ค์—ฌ์“ฐ๊ธฐ(tab), ์ค„๋ฐ”๊ฟˆ(line break) ์˜๋ฏธ

ํ”„๋กœํผํ‹ฐ๊ฐ’line breakspace/tabwrapping (์ž๋™ ์ค„๋ฐ”๊ฟˆ)
normal๋ฌด์‹œ1๋ฒˆ๋งŒ ๋ฐ˜์˜O
nowrap๋ฌด์‹œ1๋ฒˆ๋งŒ ๋ฐ˜์˜X
pre๋ฐ˜์˜๊ทธ๋Œ€๋กœ ๋ฐ˜์˜X
pre-wrap๋ฐ˜์˜๊ทธ๋Œ€๋กœ ๋ฐ˜์˜O
pre-line๋ฐ˜์˜1๋ฒˆ๋งŒ ๋ฐ˜์˜O

7.10 text-overflow ํ”„๋กœํผํ‹ฐ

๋ถ€๋ชจ ์˜์—ญ์„ ๋ฒ—์–ด๋‚œ wrapping(์ž๋™์ค„๋ฐ”๊ฟˆ)์ด ๋˜์ง€ ์•Š์€ ํ…์ŠคํŠธ์˜ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ• ์ •์˜

์กฐ๊ฑด:
1. width ํ”„๋กœํผํ‹ฐ๊ฐ€ ๋ฐ˜๋“œ์‹œ ์ง€์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ํ•„์š” ์‹œ block ๋ ˆ๋ฒจ ์š”์†Œ๋กœ ๋ณ€๊ฒฝ
2. ์ž๋™ ์ค„๋ฐ”๊ฟˆ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด white-space: nowrap ์„ค์ •
3. overflow ํ”„๋กœํผํ‹ฐ๋Š” visible ์ด์™ธ์˜ ๊ฐ’์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•จ

ํ”„๋กœํผํ‹ฐ๊ฐ’์„ค๋ช…
clip์˜์—ญ์„ ๋ฒ—์–ด๋‚œ ํ…์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š๋Š”๋‹ค. (๊ธฐ๋ณธ๊ฐ’)
ellipsis์˜์—ญ์„ ๋ฒ—์–ด๋‚œ ํ…์ŠคํŠธ๋ฅผ ์ž˜๋ผ๋‚ด์–ด ๋ณด์ด์ง€ ์•Š๊ฒŒ ํ•˜๊ณ  ๋ง์ค„์ž„ํ‘œ (โ€ฆ)๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.
<string>์ง€์ •ํ•œ ๋ฌธ์ž์—ด์„ ์ž˜๋ ค๋‚œ ํ…์ŠคํŠธ ๋Œ€์‹  ์ถœ๋ ฅํ•œ๋‹ค.

7.11 word-wrap ํ”„๋กœํผํ‹ฐ

์š”์†Œ์˜ ๋„ˆ๋น„๋ฅผ ๋„˜์–ด๊ฐ€๋Š” ๊ธด ๋‹จ์–ด(์˜ˆ: URL)๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹ ์ •์˜

์š”์†Œ:
normal (๊ธฐ๋ณธ): ๊ธด ๋‹จ์–ด๋ผ๋„ ๊ฐ•์ œ ๊ฐœํ–‰ํ•˜์ง€ ์•Š์Œ โ†’ ๋ถ€๋ชจ ์˜์—ญ์„ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ์Œ
break-word (IE, Chrome, Firefox ๋“ฑ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ์ง€์›): ๋‹จ์–ด ๊ฒฝ๊ณ„๊ฐ€ ์•„๋‹์ง€๋ผ๋„ ๋ถ€๋ชจ ์˜์—ญ์— ๋งž์ถฐ ์ž๋™ ๊ฐœํ–‰

7.12 word-break ํ”„๋กœํผํ‹ฐ

๊ธด ๋‹จ์–ด๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ โ€œ๋‹จ์–ด ๊ฒฝ๊ณ„โ€๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ๊ฐ•์ œ ๊ฐœํ–‰ํ• ์ง€ ์—ฌ๋ถ€ ์ •์˜

์š”์†Œ:
normal (๊ธฐ๋ณธ): ๋‹จ์–ด ๊ฒฝ๊ณ„๋ฅผ ์กด์ค‘ํ•˜์—ฌ ๊ฐœํ–‰
break-all: ๋‹จ์–ด ๊ฒฝ๊ณ„ ๋ฌด์‹œ, ๋ถ€๋ชจ ์˜์—ญ์— ๋งž์ถฐ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ง€์ ์—์„œ ๊ฐœํ–‰
keep-all : ํ•œ์žยทํ•œ๊ธ€ยท์ผ๋ณธ์–ด ํ…์ŠคํŠธ์—์„œ๋งŒ ๋‹จ์–ด ๊ฒฝ๊ณ„๋ฅผ ์กด์ค‘

8. ์š”์†Œ์˜ ์œ„์น˜ ์ •์˜

8.1 position ํ”„๋กœํผํ‹ฐ

์š”์†Œ์˜ ์œ„์น˜ ๋ฐฉ์‹์„ ์ง€์ •
top/right/bottom/left์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ

8.1.1 static (๊ธฐ๋ณธ์œ„์น˜)

์ด๋ฏธ ์„ค์ •๋œ position์„ ๋ฌด๋ ฅํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
top/right/bottom/left์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ (์‚ฌ์šฉ๋˜๋ฉด ๋ฌด์‹œ)

8.1.2 relative (์ƒ๋Œ€์œ„์น˜)

๊ธฐ๋ณธ ์œ„์น˜(static์œผ๋กœ ์ง€์ •๋˜์—ˆ์„ ๋•Œ์˜ ์œ„์น˜)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ขŒํ‘œ ํ”„๋กœํผํ‹ฐ(top, bottom, left, right)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ„์น˜ ์ด๋™

8.1.3 absolute (์ ˆ๋Œ€์œ„์น˜)

๊ฐ€์žฅ ๊ฐ€๊นŒ์šด non-static ์กฐ์ƒ(์—†์œผ๋ฉด ๋ฌธ์„œ) ๊ธฐ์ค€์œผ๋กœ ์˜คํ”„์…‹ ์ด๋™

8.1.4 fixed (๊ณ ์ •์œ„์น˜)

๋ทฐํฌํŠธ(viewport) ๊ธฐ์ค€์œผ๋กœ ๊ณ ์ • ๋ฐฐ์น˜
์Šคํฌ๋กค ์‹œ์—๋„ ์œ„์น˜ ์œ ์ง€

8.2 z-index ํ”„๋กœํผํ‹ฐ

position์ด static์ด ์•„๋‹Œ ์š”์†Œ์— ์ ์šฉ
๊ฐ’์ด ํด์ˆ˜๋ก ์ „๋ฉด์— ์ถœ๋ ฅ

	.orange {
      background-color: orange;
      z-index: 1000;
    }

8.3 overflow ํ”„๋กœํผํ‹ฐ

์ž์‹ ์ฝ˜ํ…์ธ ๊ฐ€ ๋ถ€๋ชจ ์˜์—ญ์„ ๋ฒ—์–ด๋‚  ๋•Œ ์ฒ˜๋ฆฌ ๋ฐฉ์‹ ์ •์˜

๊ฐ’์„ค๋ช…
visible์˜์—ญ์„ ๋ฒ—์–ด๋‚œ ๋ถ€๋ถ„์„ ํ‘œ์‹œํ•œ๋‹ค. (๊ธฐ๋ณธ๊ฐ’)
hidden์˜์—ญ์„ ๋ฒ—์–ด๋‚œ ๋ถ€๋ถ„์„ ์ž˜๋ผ๋‚ด์–ด ๋ณด์ด์ง€ ์•Š๊ฒŒ ํ•œ๋‹ค.
scroll์˜์—ญ์„ ๋ฒ—์–ด๋‚œ ๋ถ€๋ถ„์ด ์—†์–ด๋„ ์Šคํฌ๋กค๋ฐ”๋ฅผ ํ‘œ์‹œํ•œ๋‹ค. (๋Œ€๋ถ€๋ถ„์˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ auto์™€ ๋™์ผ ๋™์ž‘)
auto์˜์—ญ์„ ๋ฒ—์–ด๋‚œ ๋ถ€๋ถ„์ด ์žˆ์„ ๋•Œ๋งŒ ์Šคํฌ๋กค๋ฐ”๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.

9. ์š”์†Œ ์ •๋ ฌ

9.1 ์ •๋ ฌ

float: ๋ธ”๋ก ์š”์†Œ๋ฅผ ๊ฐ€๋กœ ์ •๋ ฌํ•  ๋•Œ ์‚ฌ์šฉ

๊ฐ’์„ค๋ช…
float: none;์š”์†Œ๋ฅผ ๋–  ์žˆ๊ฒŒ ํ•˜์ง€ ์•Š๋Š”๋‹ค. (๊ธฐ๋ณธ๊ฐ’)
float: right;์š”์†Œ๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™์‹œํ‚จ๋‹ค.
float: left;์š”์†Œ๋ฅผ ์™ผ์ชฝ์œผ๋กœ ์ด๋™์‹œํ‚จ๋‹ค.

9.2 width

๊ธฐ๋ณธ์ ์œผ๋กœ block ์š”์†Œ๋Š” ๋ถ€๋ชจ ๋„ˆ๋น„ 100% ์ฐจ์ง€
float๋ฅผ ์„ ์–ธํ•˜๋ฉด, width ๋ฏธ์ง€์ • ์‹œ ์ฝ˜ํ…์ธ  ๋„ˆ๋น„๋งŒํผ ์ตœ์†Œํ™”๋˜์–ด โ€œ๋œฌ(floating)โ€ ์ƒํƒœ๊ฐ€ ๋จ

9.3 float ํ”„๋กœํผํ‹ฐ ๊ด€๋ จ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

9.3.1 float ํ”„๋กœํผํ‹ฐ๊ฐ€ ์„ ์–ธ๋œ ์š”์†Œ์™€ float ํ”„๋กœํผํ‹ฐ๊ฐ€ ์„ ์–ธ๋˜์ง€ ์•Š์€ ์š”์†Œ๊ฐ„ margin์ด ์‚ฌ๋ผ์ง€๋Š” ๋ฌธ์ œ

์›์ธ: float ์š”์†Œ๋Š” ๋ ˆ์ด์•„์›ƒ ํ๋ฆ„์„ ๋ฒ—์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ
ํ•ด๊ฒฐ: ๋น„์„ ์–ธ ์š”์†Œ์— overflow: hidden; ์ถ”๊ฐ€

9.3.2 float ํ”„๋กœํผํ‹ฐ๊ฐ€ ์„ ์–ธ๋œ ์ž์‹ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ถ€๋ชจ ์š”์†Œ์˜ ๋†’์ด๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ

์›์ธ: ๋ถ€๋ชจ๋Š” float ์ž์‹์„ ์ธ์‹ํ•˜์ง€ ๋ชปํ•ด ๋†’์ด๊ฐ€ 0์ด ๋จ

ํ•ด๊ฒฐ:
1. ๋ถ€๋ชจ์— overflow: hidden; ์ถ”๊ฐ€
2. ๋ถ€๋ชจ์— clearfix ๊ธฐ๋ฒ• ์ ์šฉ
3. (๋น„๊ถŒ์žฅ) ๋นˆ ์—˜๋ฆฌ๋จผํŠธ์— clear: both; ์‚ฝ์ž…
4. (๋Œ€์ฒด) display: inline-block; + ๋ถ€๋ชจ font-size: 0; ๊ธฐ๋ฒ•

10. ์Šคํƒ€์ผ์˜ ์ƒ์†๊ณผ ์ ์šฉ ์šฐ์„  ์ˆœ์œ„

10.1 ์ƒ์†(Inheritance)

๋ถ€๋ชจ(์กฐ์ƒ) ์š”์†Œ์— ์ ์šฉ๋œ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ž์‹(์ž์†) ์š”์†Œ๊ฐ€ ๋ฌผ๋ ค๋ฐ›๋Š” ๊ฒƒ

์ƒ์†๋จ: visibility, opacity, font-*, color, line-height, text-align, white-space ๋“ฑ

์ƒ์†๋˜์ง€ ์•Š์Œ: width/height, margin, padding, border, display, position, overflow, float, background๋“ฑ

๊ฐ•์ œ ์ƒ์†: ์ƒ์†๋˜์ง€ ์•Š๋Š” ํ”„๋กœํผํ‹ฐ๋„ inherit ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…์‹œ์ ์œผ๋กœ ๋ฌผ๋ ค๋ฐ›์„ ์ˆ˜ ์žˆ์Œ

10.2 ์บ์Šค์บ์ด๋”ฉ(Cascading)

ํ•˜๋‚˜์˜ ์š”์†Œ๊ฐ€ ์—ฌ๋Ÿฌ CSS ๊ทœ์น™์— ์˜ํ–ฅ์„ ๋ฐ›์„ ๋•Œ, ์ ์šฉ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์„ธ ๊ฐ€์ง€ ๊ทœ์น™

10.2.1 ์ค‘์š”๋„

์œ„์น˜์— ๋”ฐ๋ฅธ ์šฐ์„ ์ˆœ์œ„
1. head ์š”์†Œ ๋‚ด์˜ style ์š”์†Œ
2. head ์š”์†Œ ๋‚ด์˜ style ์š”์†Œ ๋‚ด์˜ @import ๋ฌธ
3. <link> ๋กœ ์—ฐ๊ฒฐ๋œ CSS ํŒŒ์ผ
4. <link> ๋กœ ์—ฐ๊ฒฐ๋œ CSS ํŒŒ์ผ ๋‚ด์˜ @import ๋ฌธ
5. ๋ธŒ๋ผ์šฐ์ € ๋””ํดํŠธ ์Šคํƒ€์ผ์‹œํŠธ

10.2.2 ๋ช…์‹œ๋„

๋†’์€ ๋ช…์‹œ๋„ โ†’ ๋†’์€ ์šฐ์„ ์ˆœ์œ„
1. !important
2. ์ธ๋ผ์ธ ์Šคํƒ€์ผ
3. ID ์„ ํƒ์ž (#id)
4. ํด๋ž˜์Šค/์†์„ฑ/๊ฐ€์ƒ ํด๋ž˜์Šค (.class, [attr], :hover)
5. ํƒœ๊ทธ ์„ ํƒ์ž (div, p ๋“ฑ)
6. ์ „์ฒด ์„ ํƒ์ž (*)
7. ์ƒ์†๋œ ์Šคํƒ€์ผ

10.2.3 ์„ ์–ธ์ˆœ์„œ

๊ฐ™์€ ๋ช…์‹œ๋„ ๋‚ด์—์„œ, ๋‚˜์ค‘์— ์„ ์–ธ๋œ ๊ทœ์น™์ด ์šฐ์„  ์ ์šฉ

p { color: blue; }
p { color: red; }   /* ์ด ๊ทœ์น™์ด ์ ์šฉ๋˜์–ด ๋นจ๊ฐ„์ƒ‰ */

0๊ฐœ์˜ ๋Œ“๊ธ€