[ ๊ตญ๋น„๊ต์œก ] Day 36

์‹œ์ž‘์€ ๊ฐ€๋ณ๊ฒŒ, ์–ด์ œ ๋งŒ๋“ค๋˜ ๋ ˆ์ด์•„์›ƒ ๋งˆ๋ฌด๋ฆฌํ•˜๊ธฐ.

img sr=โ€œurlโ€

์‚ฌ์‹ค ์ด๋ฏธ์ง€ ๋„ฃ๋Š” ๊ฒƒ์€ ๊ฐ„๋‹จํ•˜๋‹ค. ์†์„ฑ๊ฐ’์œผ๋กœ ์ด๋ฏธ์ง€ ์ฃผ์†Œ๋งŒ ์ž…๋ ฅํ•˜๋ฉด ๋์ด๊ธฐ ๋•Œ๋ฌธ์—..
๊ทผ๋ฐ, ๋ฌธ์ œ๋Š” ๋ ˆ์ด์•„์›ƒ์— ์ด๋ฏธ์ง€๋ฅผ ๋„ฃ์„ ๋•Œ, ๊ทœ๊ฒฉ์ด ์•ˆ ๋งž์•„ ์ด๋ฏธ์ง€๊ฐ€ ๋ญ‰๊ฐœ์ง€๋Š” ์ผ์ด ๋นˆ๋ฒˆํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฌ๋‹ˆ ๋ธŒ๋ผ์šฐ์ €์—์„œ F12๋ฅผ ๋ˆŒ๋Ÿฌ์ค€ ๋’ค, inspecting ๊ธด div์— ์ด๋ฏธ์ง€๋ฅผ ๋„ฃ์„ ๋•Œ, ํฌ๊ธฐ๋ฅผ ์•Œ๊ณ  ๋„ฃ์–ด์•ผ ๋˜๊ธฐ ๋•Œ๋ฌธ์— F12๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

inspect๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์š”์†Œ์˜ ์ •๋ณด๋“ค์„ ํ™•์ธํ•˜์ž. ๊ทธ๋ฆฌ๊ณ  <div> ๋กœ ๊ฐ์‹ธ์ค€ ๋’ค ์ด์˜๊ฒŒ ๋„ฃ์–ด์ฃผ๋ฉด ๋!

์‘ ๋””์ž์ธ ์•ˆํ•˜๋ฉด ๊ทธ๋งŒ์ด์•ผ~

positioning

position ์†์„ฑ์€ table ์ดํ›„ ๋ ˆ์ด์•„์›ƒ์„ ๋งŒ๋“ค ๋•Œ, ์‚ฌ์šฉํ–ˆ๋˜ ๊ธฐ๋ฒ•์ด์ง€๋งŒ ์› ๋ชฉ์ ์€ ์š”์†Œ์˜ ์œ„์น˜๋ฅผ ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ position์„ ๋ชจ๋ฅด๋Š” ์ƒํƒœ์—์„œ ์œ„์น˜ ์กฐ์ •์€ margin, padding์œผ๋กœ ์—ฌ๋ฐฑ์„ ์กฐ์ •ํ•ด์„œ ๊ตฌํ˜„ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ, margin, padding๋„ ๊ทธ ์› ๋ชฉ์ ์ด ์œ„์น˜ ์กฐ์ •์ด ์•„๋‹ˆ๋ผ์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์š”์†Œ๊ฐ€ ๋‚ด๋ถ€์— ์žˆ์„ ๊ฒฝ์šฐ, ์ž์นซํ•˜๋ฉด ์‚ฌ์ด์ฆˆ๊ฐ€ ๋„˜์–ด๊ฐ€์„œ ๊นจ์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

๊ทธ๋ž˜์„œ position ์†์„ฑ๊ณผ top, left ๋“ฑ์˜ ๋ฐฉํ–ฅ์„ ์กฐํ•ฉํ•˜์—ฌ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด CSS ์œ„์น˜ ์กฐ์ •์˜ ๊ธฐ๋ณธ์ด๋‹ค.

[ ์‚ฌ์šฉ๋ฒ• ]

์˜ˆ์‹œ
 <div id="container">
        <div id="box1" class="box"></div>
์ ์šฉ
  #box1{
            background-color: black;
            top: 30px;
            left: 30px;
	}

1) static

position์˜ ๊ธฐ๋ณธ๊ฐ’, ์ด ์ƒํƒœ์—์„  top, left ๋“ฑ์˜ ์œ„์น˜ ์กฐ์ •์ด ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

์œ„ ์˜ˆ์‹œ์—์„œ box1์— top, left๋ฅผ ์ ์šฉํ–ˆ์ง€๋งŒ, ์œ„์น˜๋Š” ๋ณ€ํ•˜์ง€ ์•Š์•˜๋‹ค. ์ด๋Š” ์š”์†Œ์˜ ๊ธฐ๋ณธ๊ฐ’์ด static์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ฆ‰, static ์ƒํƒœ์˜ ์š”์†Œ๋Š” position์ด ์ ์šฉ๋˜์ง€ ์•Š์•„์„œ, ์šฐ๋ฆฌ๋Š” ์š”์†Œ์˜ position ๊ฐ’์„ ๋ฐ”๊ฟ”์ค˜์•ผ ํ•œ๋‹ค.

๋˜ํ•œ, static ์ƒํƒœ์˜ ์š”์†Œ๋Š” normal flow layer์— ์กด์žฌํ•œ๋‹ค. ๋ง ๊ทธ๋Œ€๋กœ ๊ธฐ๋ณธ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์— ์˜ฎ๊ธธ ์ˆ˜๋„ ์—†์œผ๋ฉฐ, ๊ฐ€์žฅ ๋’ค์— ์žˆ๋Š” ๋ ˆ์ด์–ด์—ฌ์„œ z-index ๋„ ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

๊ทธ๋Ÿผ static ์ด์™ธ์˜ ๋‹ค๋ฅธ ๊ฐ’๋“ค์„ ์•Œ์•„๋ณด์ž.


2) relative

๊ธฐ์ค€ : normal flow ์ƒ์— ์›๋ž˜ ์š”์†Œ์˜ ์œ„์น˜

์ ์šฉ : normal flow์˜ ๋ณธ๋ž˜ ์œ„์น˜๋กœ๋ถ€ํ„ฐ ์ด๋™ํ•˜๋ฉฐ, ์š”์†Œ ํ•œ ๊ฐœ๋ฅผ ์ด๋™์‹œํ‚ฌ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

์˜ˆ์‹œ
 <div id="container">
        <div id="box1" class="box"></div>
์ ์šฉ
  #box1{
            position: relative;
            top: 30px;
            left: 30px;
	}


3) absolute

๊ธฐ์ค€ : ์ž์‹ ์ด ์†ํ•œ Parent ์š”์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์›€์ง์ธ๋‹ค.

์ ์šฉ : ๊ธฐ๋ณธ ์œ„์น˜๋Š” normal flow์—์„œ์˜ ์ž๋ฆฌ์— ๋†“์—ฌ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•  ๊ฒฝ์šฐ ๊ทธ ๊ธฐ์ค€์ธ ์ž์‹ ์˜ parent ์š”์†Œ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์›€์ง์ธ๋‹ค. ๋‹จ, ์ž์‹ ์ด ์†ํ•œ parent๋Š” static ์ƒํƒœ์—ฌ์„  ์•ˆ๋œ๋‹ค.

์™œ๋ƒ๋ฉด absolute๋Š” ์‹คํ–‰ ์‹œ, ๋ณธ์ธ parent ์š”์†Œ์˜ position์„ ํ™•์ธํ•˜๊ณ  static์ด๋ฉด ๋ฌด์‹œํ•˜๊ณ  ๊ทธ ๋‹ค์Œ์œผ๋กœ ๊ฐ€๊นŒ์šด parent์š”์†Œ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ชจ๋“  parent ์š”์†Œ๋“ค์ด static์ธ ๊ฒฝ์šฐ์—” body๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์›€์ง์ด๊ฒŒ ๋˜๊ธฐ์—, ๊ธฐ์ค€์ด ๋  parent ์š”์†Œ๋Š” relative ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ฒŒ ๋งž๋‹ค.

๋””์ž์ธ์€ PPT๊ฐ€ ์ตœ๊ณ ๋‹ค.

๋˜ํ•œ, absolute ์ž์ฒด๋Š” float์ฒ˜๋Ÿผ ๋ ˆ์ด์–ด์˜ ๊ฐœ๋…์œผ๋กœ absolute๊ฐ€ ์ ์šฉ๋œ n๊ฐœ์˜ ์š”์†Œ๋Š” n๊ฐœ์˜ ๋ ˆ์ด์–ด๋ฅผ ๋งŒ๋“ ๋‹ค. ์ฆ‰, ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ ˆ์ด์–ด ์ค‘ ํ•˜๋‚˜๋กœ, normal flow์— ์žˆ๋˜ ์š”์†Œ๊ฐ€ ํ•ด๋‹น ๊ธฐ๋ณธ ๋ ˆ์ด์–ด ์œ„๋กœ ์˜ฌ๋ผ์˜ค๊ณ , ๊ฐ ๋ ˆ์ด์–ด๋Š” ์ˆœ์„œ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

์ถ”๊ฐ€๋กœ absolute ์ƒํƒœ์˜ ๋ ˆ์ด์–ด ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ๊ณ  ์‹ถ์„ ๋•Œ๋Š” z-index ๋กœ ์กฐ์ ˆํ•˜๋ฉด ๋œ๋‹ค.


4) fixed

๊ธฐ์ค€ : ํ˜„์žฌ ๋ณด๊ณ  ์žˆ๋Š” ํ™”๋ฉด

์šฐ๋ฆฌ๊ฐ€ ์ธํ„ฐ๋„ท ์„œํ•‘์„ ํ•  ๋•Œ, ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚˜๋Š” ๊ด‘๊ณ ๋“ค์ด ์ด ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
์—ฌ๊ธฐ์„œ ๋ณด๊ณ  ์žˆ๋Š” ํ™”๋ฉด์€ โ€˜์ „์ฒด ์˜์—ญโ€™์ด ์•„๋‹Œ ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์— ๋‚˜ํƒ€๋‚œ ํฌ๊ธฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

๊ทธ๋ž˜์„œ ํ•ด๋‹น ํ™”๋ฉด์˜ ํŠน์ • ์œ„์น˜์— ์•„์˜ˆ ๊ณ ์ •์‹œ์ผœ, ์Šคํฌ๋กค์„ ํ•ด๋„ ์‚ฌ๋ผ์ง€์ง€ ์•Š๋Š”๋‹ค.
์ด๋ฅผ ์‘์šฉํ•ด ์ฃผ๋กœ ์ฑ„ํŒ… ์ƒ๋‹ด ์œ„์ ฏ, ํ™”๋ฉด ์ปจํŠธ๋กค๋Ÿฌ ๋“ฑ์„ ๊ตฌํ˜„ํ•œ๋‹ค.


5) transform

์ด๊ฑด ๋ ˆ์ด์•„์›ƒ์„ ์žก๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฑด ์•„๋‹ˆ๊ณ , ๊ฐ ์š”์†Œ์— ์ ์šฉํ•ด์„œ ๋ณ€ํ™”๋ฅผ ์ฃผ๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ ์†์„ฑ์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฃผ๋กœ :hover / :active ์™€ ์กฐํ•ฉํ•ด์„œ, ์‚ฌ์šฉ์ž๊ฐ€ ์š”์†Œ์— ํŠน์ • ๋™์ž‘์„ ํ–ˆ์„ ๋•Œ ๋ฐ˜์‘ํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

transform : rotate(~deg); ํšŒ์ „
transform : scale(?);	ํฌ๊ธฐ ์ฆ๊ฐ€
transform : translate(20px,100px); ์œ„์น˜ ์ด๋™

๋ฌผ๋ก  ๋”ฐ๋กœ ์Šคํƒ€์ผ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์ง€๋งŒ, ์ข‹์€ CDN๋“ค์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌ๊ธ€์— ๊ฒ€์ƒ‰ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฑธ ๊ถŒ์žฅํ•œ๋‹ค.


์˜ค๋Š˜ ๋ฐฐ์šด positioning ๋˜ํ•œ, ๋ ˆ์ด์•„์›ƒ ์•ˆ์˜ ์š”์†Œ๋ฅผ ์˜ฎ๊ธธ ๋•Œ, ํšจ๊ณผ๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ ˆ์ด์•„์›ƒ ๊ธฐ๋ฒ•์œผ๋กœ ์‹ค์ œ ์‚ฌ์ดํŠธ๋“ค์—์„œ๋„ ์‰ฝ๊ฒŒ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋‹ค๋งŒ ์–ด์ œ ๊ฐ‘์ž‘์Šค๋Ÿฝ๊ฒŒ ํฌํ† ํด๋ฆฌ์˜ค?๋ฅผ ์ œ์ถœํ•˜๋ผ๋Š” ๋ฐ”๋žŒ์— 7์‹œ๊ฐ„ ๋™์•ˆ ๊พธ์—ญ ๊พธ์—ญ ๋ ˆ์ด์•„์›ƒ ์žก๊ณ  ํ–ˆ์—ˆ๋Š”๋ฐ, positioning์„ ๋‚จ์šฉํ–ˆ๋”๋‹ˆ ํ™”๋ฉด ํฌ๊ธฐ๊ฐ€ ์ค„์–ด๋“ค๋ฉด ๊ทธ์— ๋งž์ถฐ์„œ ํ•จ๊ป˜ ์ค„์–ด๋“œ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žฆ์•˜๋‹ค.

๊ทธ๋Ÿฌ๋‹ˆ ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ ์•„๋‹ˆ๋ฉด ์•ˆ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค.

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ