๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ปWEB FrontEnd/CSS3

CSS ๋ ˆ์ด์•„์›ƒ- ํฌ์ง€์…”๋‹๊ณผ ์ฃผ์š” ์†์„ฑ๋“ค

<Do it! HTML5+CSS3>์„ ๊ธฐ๋ณธ์œผ๋กœ ๋ฐฐ์šด ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

 

๋ชฉ์ฐจ

  • 1. CSS Positioning
    1) ํฌ์ง€์…”๋‹์˜ ์ข…๋ฅ˜
    1) ํฌ์ง€์…”๋‹ ๋น„๊ต
  • 2. ํฌ์ง€์…”๋‹ ๊ด€๋ จ ์ฃผ์š” ์†์„ฑ๋“ค
    1) ๋ฐ•์Šค ๋„ˆ๋น„ ๊ธฐ์ค€ ์ •ํ•˜๊ธฐ - box-sizing
    2) ์™ผ์ชฝ์ด๋‚˜ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ฐฐ์น˜ - float
    3) float ์†์„ฑ ํ•ด์ œ - clear
    4) ์š”์†Œ๋ฅผ ๋ณด์ด๊ฒŒ/๋ณด์ด์ง€ ์•Š๊ฒŒ ์ง€์ • - visibility
    5) ์š”์†Œ ์Œ“๋Š” ์ˆœ์„œ ์ •ํ•˜๊ธฐ - z-index

 

1. CSS Positioning

CSS ํฌ์ง€์…”๋‹์ด๋ž€, CSS๋ฅผ ์ด์šฉํ•ด์„œ HTML ์š”์†Œ๋“ค์˜ ์œ„์น˜๋ฅผ ์ œ์–ดํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

์š”์†Œ์— CSS ์†์„ฑ์œผ๋กœ position์„ ์ง€์ •ํ•˜๋ฉด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์œ„์น˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

1) ํฌ์ง€์…”๋‹์˜ ์ข…๋ฅ˜

- ์ƒ๋Œ€์œ„์น˜(position: relative)

  • ์ž์‹ ์˜ ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•œ ์ƒ๋Œ€์œ„์น˜ ๊ฐ’์„ ์ง€์ •ํ•œ๋‹ค.
  • ์ž์‹ ์—˜๋ฆฌ๋จผํŠธ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ์„œ ๋ถ€๋ชจ ์—˜๋ฆฌ๋จผํŠธ์˜ ํฌ๊ธฐ๊ฐ€ ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝ๋˜์ง€๋งŒ, ์—˜๋ฆฌ๋จผํŠธ์˜ ์œ„์น˜์— ๋”ฐ๋ผ์„œ๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๋‹ค.

 

- ์ ˆ๋Œ€์œ„์น˜(position: absolute)

  • ๋ฌธ์„œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์œ„์น˜๊ฐ€ ์ •ํ•ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋ชจ ์—˜๋ฆฌ๋จผํŠธ์˜ ์œ„์น˜์™€๋Š” ๋ฌด๊ด€ํ•˜๋‹ค.
  • ์—˜๋ฆฌ๋จผํŠธ์˜ ํฌ๊ธฐ๊ฐ€ ๋ถ€๋ชจ ์—˜๋ฆฌ๋จผํŠธ์˜ ํฌ๊ธฐ์— ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š”๋‹ค. 

 

- ๊ณ ์ •์œ„์น˜(position: fixed)

  • ๋ฌธ์„œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์œ„์น˜๊ฐ€ ์ •ํ•ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋ชจ ์—˜๋ฆฌ๋จผํŠธ์˜ ์œ„์น˜์™€๋Š” ๋ฌด๊ด€ํ•˜๋‹ค.
  • ์—˜๋ฆฌ๋จผํŠธ์˜ ํฌ๊ธฐ๊ฐ€ ๋ถ€๋ชจ ์—˜๋ฆฌ๋จผํŠธ์˜ ํฌ๊ธฐ์— ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š”๋‹ค.
  • ์Šคํฌ๋กค์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค.

 

- ์ •์ ์œ„์น˜(position: static)

  • ์ž์‹ ์—˜๋ฆฌ๋จผํŠธ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ์„œ ๋ถ€๋ชจ ์—˜๋ฆฌ๋จผํŠธ์˜ ํฌ๊ธฐ๊ฐ€ ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค.
  • position ์†์„ฑ์˜ ๊ฐ’์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ static์˜ ๊ฐ’์ด ์ฃผ์–ด์ง„๋‹ค.
  • left, top, right, bottom๊ณผ ๊ฐ™์€ offset์ด ๋ฌด์‹œ๋œ๋‹ค.

 

 

2) ํฌ์ง€์…”๋‹ ๋น„๊ต

  ๊ธฐ์ค€์œ„์น˜ ๋ถ€๋ชจ์˜ ํฌ๊ธฐ ์ž์‹ ์˜ ํฌ๊ธฐ offset ์‚ฌ์šฉ(left,right.
top,bottom)
์Šคํฌ๋กค
static

์ž๊ธฐ์œ„์น˜

์ž์‹์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ

width:100%๋กœ ๋ถ€๋ชจ์˜ ํฌ๊ธฐ๋ฅผ ๋”ฐ๋ฆ„

๋ถˆ๊ฐ€

๋”ฐ๋ผ๊ฐ
relative

์ž๊ธฐ์œ„์น˜

์ž์‹์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ๋˜์ง€๋งŒ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•จ์— ๋”ฐ๋ผ ๋ถ€๋ชจ์˜ ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€๋Š” ์•Š์Œ

width:100%๋กœ ๋ถ€๋ชจ์˜ ํฌ๊ธฐ๋ฅผ ๋”ฐ๋ฆ„

๊ฐ€๋Šฅ

๋”ฐ๋ผ๊ฐ
absolute

๋ฌธ์„œ(html), ์‹œ์ž‘ ์œ„์น˜๋Š” static ๊ธฐ์ค€์œผ๋กœ ์›๋ž˜์˜ ์œ„์น˜์— ๋งž์ถฐ์ ธ ์žˆ์Œ.

๋ถ€๋ชจ์˜ ํฌ๊ธฐ์— ์˜ํ–ฅ์„ ๋ผ์น˜์ง€ ์•Š์Œ

ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ์ปจํ…ํŠธ์˜ ํฌ๊ธฐ ๋งŒํผ ๋Š˜์–ด๋‚จ

๊ฐ€๋Šฅ ๋”ฐ๋ผ๊ฐ
fixed ์ ˆ๋Œ€์œ„์น˜์™€ ๋™์ผ ์ ˆ๋Œ€์œ„์น˜์™€ ๋™์ผ ์ ˆ๋Œ€์œ„์น˜์™€ ๋™์ผ ๊ฐ€๋Šฅ ๊ณ ์ •

 


2. ํฌ์ง€์…”๋‹ ๊ด€๋ จ ์ฃผ์š” ์†์„ฑ๋“ค

1) ๋ฐ•์Šค ๋„ˆ๋น„ ๊ธฐ์ค€ ์ •ํ•˜๊ธฐ - box-sizing

  • width์†์„ฑ = ์ฝ˜ํ…์ธ  ์˜์—ญ์˜ ๋„ˆ๋น„
  • box-sizing = width + ์ขŒ์šฐํŒจ๋”ฉ + ์ขŒ์šฐํ…Œ๋‘๋ฆฌ
์„ ํƒ์ž { box-sizing: ์†์„ฑ ๊ฐ’ }
์†์„ฑ ๊ฐ’ ์„ค๋ช…
content-box (๊ธฐ๋ณธ ๊ฐ’) width ์†์„ฑ ๊ฐ’์„ ์ฝ˜ํ…์ธ  ์˜์—ญ ๋„ˆ๋น„ ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
border-box width ์†์„ฑ ๊ฐ’์„ ์ฝ˜ํ…์ธ  ์˜์—ญ์— ํ…Œ๋‘๋ฆฌ๊นŒ์ง€ ํฌํ•จํ•œ ๋ฐ•์Šค ๋ชจ๋ธ ์ „์ฒด ๋„ˆ๋น„ ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

2) ์™ผ์ชฝ์ด๋‚˜ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ฐฐ์น˜ - float

์˜ˆ๋ฅผ ๋“ค์–ด ์ด๋ฏธ์ง€๋ฅผ ์™ผ์ชฝ์— ๋ฐฐ์น˜ํ•œ ํ›„ ์˜ค๋ฅธ์ชฝ์— ํ…์ŠคํŠธ๋ฅผ ์˜ค๊ฒŒ ํ•˜๋ ค๋ฉด ์ด๋ฏธ์ง€ ์š”์†Œ์— float์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€๋ฅผ ์™ผ์ชฝ์— ๋–  ์žˆ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์„ ํƒ์ž { float: left | right | none }

 

 

3) float ์†์„ฑ ํ•ด์ œ - clear

float์†์„ฑ์„ ์ด์šฉํ•ด ์›น ํŽ˜์ด์ง€ ์š”์†Œ๋ฅผ ๋ฐฐ์น˜ํ•˜๊ฒŒ๋˜๋ฉด ๊ทธ ๋‹ค์Œ์— ๋„ฃ๋Š” ๋‹ค๋ฅธ ์š”์†Œ๋“ค์—๋„ ๋˜‘๊ฐ™์€ ์†์„ฑ์ด ์ „๋‹ฌ๋œ๋‹ค. ๋”ฐ๋ผ์„œ float์†์„ฑ์„ ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋•Œ๋Š” clear์†์„ฑ์„ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค.

์„ ํƒ์ž { clear: none | left | right | both }

 

 

4) ์š”์†Œ๋ฅผ ๋ณด์ด๊ฒŒ/๋ณด์ด์ง€ ์•Š๊ฒŒ ์ง€์ • - visibility

visibility์†์„ฑ์€ ํŠน์ • ์š”์†Œ๋ฅผ ํ™”๋ฉด์— ๋ณด์ด๊ฒŒ ํ•˜๊ฑฐ๋‚˜ ๋ณด์ด์ง€ ์•Š๊ฒŒ ๋˜๋Š” ๊ฒน์น˜๊ฒŒ ์„ค์ •ํ•˜๋Š” ์†์„ฑ์ด๋‹ค.

์„ ํƒ์ž { visibility: ์†์„ฑ ๊ฐ’ }
์†์„ฑ ๊ฐ’ ์„ค๋ช…
visible (๊ธฐ๋ณธ ๊ฐ’) ํ™”๋ฉด์— ์š”์†Œ๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.
hidden ํ™”๋ฉด์—์„œ ์š”์†Œ๋ฅผ ๊ฐ์ถ˜๋‹ค. ํ•˜์ง€๋งŒ ํฌ๊ธฐ๋Š” ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•œ๋‹ค.
collapse - ํ‘œ์˜ ํ–‰, ์—ด, ํ–‰ ๊ทธ๋ฃน, ์—ด ๊ทธ๋ฃน ๋“ฑ์—์„œ ์ง€์ •ํ•˜๋ฉด ์„œ๋กœ ๊ฒน์น˜๋„๋ก ์กฐ์ ˆํ•œ๋‹ค.
- ๊ทธ ์™ธ์˜ ์˜์—ญ์—์„œ ์‚ฌ์šฉํ•˜๋ฉด hidden๊ณผ ๊ฐ™๋‹ค.

 

 

5) ์š”์†Œ ์Œ“๋Š” ์ˆœ์„œ ์ •ํ•˜๊ธฐ - z-index

  • z-index์†์„ฑ์€ ์š”์†Œ ์œ„์— ์š”์†Œ๋ฅผ ์Œ“์„ ๋•Œ ์Œ“๋Š” ์ˆœ์„œ๋ฅผ ์ง€์ •ํ•œ๋‹ค.
  • z-index๊ฐ’์ด ์ž‘์„์ˆ˜๋ก ์•„๋ž˜์— ์Œ“์ด๊ณ , ๊ฐ’์ด ํด์ˆ˜๋ก ์œ„์— ์Œ“์ธ๋‹ค.
  • z-index๊ฐ’์„ ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด, ์›น ๋ฌธ์„œ์— ๋งจ ๋จผ์ € ์‚ฝ์ž…ํ•˜๋Š” ์š”์†Œ๊ฐ€ ๊ฐ’ 1์„ ๊ฐ–๊ณ  ๊ทธ ํ›„ ์‚ฝ์ž…ํ•˜๋Š” ์š”์†Œ๋“ค์˜ ๊ฐ’์€ ์ ์  ์ปค์ง„๋‹ค.
์„ ํƒ์ž { z-index: ์†์„ฑ ๊ฐ’ }