๐Ÿšข

ch3 - 2. Position

1. Position์ด๋ž€?

์ด๋ฆ„์—์„œ์ฒ˜๋Ÿผ, position์ด๋ž€ ์›นํŽ˜์ด์ง€์—์„œ ์ €ํฌ๊ฐ€ ๋งŒ๋“ค์—ˆ๋˜ html ํƒœ๊ทธ๋‚˜ id, class ๋ฐ•์Šค ๋“ฑ์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•ด์ฃผ๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค. position ์†์„ฑ์„ ์ด์šฉํ•ด ์šฐ๋ฆฌ๋Š” ํŽ˜์ด์ง€์˜ ๋ ˆ์ด์•„์›ƒ์„ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. Position์˜ ์ข…๋ฅ˜

2.1 static

๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ํƒœ๊ทธ๋“ค์€ ๋”ฐ๋กœ position ์†์„ฑ๊ฐ’์„ ์ฃผ์ง€ ์•Š์•˜๋‹ค๋ฉด static ๊ฐ’์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์ฆ‰ html์— ์“ด ํƒœ๊ทธ ์ˆœ์œผ๋กœ ์œ„์น˜๊ฐ€ ์ง€์ •๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ตณ์ด ๊ธฐ์ž…ํ•  ํ•„์š”๋Š” ์—†์ง€๋งŒ, ๋ถ€๋ชจ ๊ฐ์ฒด์—์„œ ๋‹ค๋ฅธ position ์†์„ฑ๊ฐ’์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ทธ๋ฅผ ๋ฌด์‹œํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋  ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
<!DOCTYPE html> <html lang="kor"> <head> <meta charset="UTF-8"> <title>static</title> <style> .box1{ position:static; background-color: green; color:white; width: 100px; height: 100px; } .box2{ position:static; background-color: red; color:white; width: 100px; height: 100px; } .box3{ position:static; background-color: blue; color:white; width: 100px; height: 100px; } </style> </head> <body> <div class="box1">box1</div> <div class="box2">box2</div> <div class="box3">box3</div> </body> </html>
ย 
์ด๋ ‡๊ฒŒ static์€ ์ฐจ๋ก€๋Œ€๋กœ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋†“์Šต๋‹ˆ๋‹ค!์ด๋ ‡๊ฒŒ static์€ ์ฐจ๋ก€๋Œ€๋กœ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋†“์Šต๋‹ˆ๋‹ค!
์ด๋ ‡๊ฒŒ static์€ ์ฐจ๋ก€๋Œ€๋กœ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋†“์Šต๋‹ˆ๋‹ค!
ย 

2.2 relative

๋‹จ์–ด ์ž์ฒด์˜ ๋œป์ฒ˜๋Ÿผ '์ƒ๋Œ€์ '์ธ ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋Œ€์ฒด '๋ฌด์—‡'์— ์ƒ๋Œ€์ ์ธ์ง€ ๊ถ๊ธˆํ•ดํ•˜์‹ค ํ…๋ฐ์š”. ๋ฐ”๋กœ static, ์ฆ‰ ์›๋ž˜ ์ž์‹ ์ด ์žˆ์–ด์•ผ ํ•˜๋Š” ์œ„์น˜์— ์ƒ๋Œ€์ ์ž…๋‹ˆ๋‹ค. relative๋Š” ๊ทธ ๋ˆ„๊ตฌ๋ณด๋‹ค๋„ ์ž์‹ ์ด ์›๋ž˜ ์žˆ๋˜ ์ž๋ฆฌ๋ฅผ ๊ธฐ์–ตํ•˜๋Š” ์นœ๊ตฌ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ position: relative;๋ผ๋Š” ๊ฐ’์„ ์ฃผ๊ณ  left : 50px; ์ด๋ผ๊ณ  ์ถ”๊ฐ€์ ์œผ๋กœ ์ ์–ด ์ฃผ๋ฉด, ๋ณธ์ธ์˜ static ์ž๋ฆฌ์—์„œ ์™ผ์ชฝ์œผ๋กœ 50px๋งŒํผ ๋–จ์–ด์ง„ ์ž๋ฆฌ์— ์œ„์น˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
<!DOCTYPE html> <html lang="kor"> <head> <meta charset="UTF-8"> <title>relative</title> <style media="screen"> .box1{ position:static; background-color: green; color:white; width: 100px; height: 100px; } .box2{ position:relative; left: 40px; background-color: red; color:white; width: 100px; height: 100px; } </style> </head> <body> <div class="box1">box1</div> <div class="box2">box2</div> </body> </html>
ย 
relative ์†์„ฑ์„ ์ฃผ์–ด box2๊ฐ€ ์›๋ž˜ ์žˆ์–ด์•ผ ํ•  ์ž๋ฆฌ์—์„œ ์™ผ์ชฝ์œผ๋กœ 40px ๋–จ์–ด๋œจ๋ฆฐ ๋ชจ์Šต์ž…๋‹ˆ๋‹ค.relative ์†์„ฑ์„ ์ฃผ์–ด box2๊ฐ€ ์›๋ž˜ ์žˆ์–ด์•ผ ํ•  ์ž๋ฆฌ์—์„œ ์™ผ์ชฝ์œผ๋กœ 40px ๋–จ์–ด๋œจ๋ฆฐ ๋ชจ์Šต์ž…๋‹ˆ๋‹ค.
relative ์†์„ฑ์„ ์ฃผ์–ด box2๊ฐ€ ์›๋ž˜ ์žˆ์–ด์•ผ ํ•  ์ž๋ฆฌ์—์„œ ์™ผ์ชฝ์œผ๋กœ 40px ๋–จ์–ด๋œจ๋ฆฐ ๋ชจ์Šต์ž…๋‹ˆ๋‹ค.

2.3 absolute

absolute์˜ ํŠน์ง•์„ ๊ตณ์ด ํ•œ ๋‹จ์–ด๋กœ ์„ค๋ช…ํ•˜์ž๋ฉด 'my way'๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. position: absolute;๋ผ๊ณ  ํ•œ ๋’ค top : 20px; right: 30px;์ด๋ผ๊ณ  ์ถ”๊ฐ€์  ๊ฐ’์„ ์ฃผ๋ฉด, ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— ๋™๋–จ์–ด์ง„ ๋ฐ•์Šค๊ฐ€ ํ•˜๋‚˜ ๋†“์—ฌ์žˆ๋Š” ๊ฒƒ์„ ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋“ค์€ ๊ธฐ์ค€์ ์ด html ์œ„์น˜์— ์žˆ๊ธฐ์—, ์™ผ์ชฝ ์ œ์ผ ์ƒ๋‹จ์ด ๋ณธ๋ž˜ ์ž์‹ ์˜ ์œ„์น˜๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์›€์ง์ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜, ์ด absolute๋„ ๋ˆˆ์น˜๋ฅผ ๋ณด๋Š” ์†์„ฑ์ด ์žˆ๋‹ค๋ฉด, ๋ฐ”๋กœ relative์ž…๋‹ˆ๋‹ค. relative ์†์„ฑ์ด ๋ถ€๋ชจ๋กœ ๋†“์—ฌ์žˆ๋‹ค๋ฉด, absolute๋Š” relative ๋ฐ•์Šค ๋‚ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์œ„์น˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋งˆ์น˜ relative๊ฐ€ static์˜ ์ž๋ฆฌ๋ฅผ ์œ ๋…ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ์š”.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>relative-absolute</title> <style> .box1{ position:relative; top:40px; background-color: green; color:white; width: 100px; height: 100px; } .box2{ position:absolute; top: 40px; background-color: red; color:white; width: 100px; height: 100px; } .box3{ position: absolute; top: 30px; left: 30px; background-color: blue; color:white; width: 100px; height: 100px; } </style> </head> <body> <div class="box3">box3</div> <div class="box1">box1 <div class="box2"> box2 </div> </div> </body> </html>
ย 
notion imagenotion image
์ƒ๋‹จ์˜ ์ฝ”๋“œ๋ฅผ ์›นํŽ˜์ด์ง€์— ๊ตฌํ˜„ํ•œ ์‚ฌ์ง„์ž…๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ relative ์†์„ฑ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๋Š” box3์€ left์™€ top์— ์–ด๋Š ์ •๋„ px์„ ๋‘์–ด ๋–จ์–ดํŠธ๋ ธ์„ ๋•Œ ์ƒ๋‹จ ์ œ์ผ ์™ผ์ชฝ์„ ๊ธฐ์ค€์ ์œผ๋กœ ์›€์ง์˜€๋‹ค๋ฉด, relative ์†์„ฑ์ธ box1 ๋‚ด์— ๊ตฌ์†๋ฐ›๋Š” box2๋Š” top: 40px ๊ฐ’์„ ์ฃผ์—ˆ์„ ๋•Œ, box1์˜ ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์›€์ง์˜€์Œ์„ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰ box2์™€ 3์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋“ฏ ๋˜‘๊ฐ™์ด position: absolute; ์˜ ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด๋„, ์ƒ์œ„ ์—˜๋ฆฌ๋จผํŠธ๊ฐ€ relative ์†์„ฑ์„ ๊ฐ€์กŒ๋Š”์ง€ ์•„๋‹Œ์ง€์— ๋”ฐ๋ผ ์„œ๋กœ ๋‹ค๋ฅธ ์œ„์น˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

2.4 fixed

์Šคํฌ๋กค์„ ์˜ฌ๋ฆฌ๊ฑฐ๋‚˜ ๋‚ด๋ฆด ๋•Œ, ํŠน์ • ๋ฐ•์Šค๊ฐ€ ๊ณ ์ •๋˜์–ด ์›€์ง์ด์ง€ ์•Š์•˜์œผ๋ฉด ํ•œ๋‹ค๋ฉด, ์ด fixed ์†์„ฑ์„ ์ด์šฉํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค! position:fixed;๋ฅผ ๊ธฐ์ž…ํ•˜๋ฉด, ํ•ด๋‹น ์—˜๋ฆฌ๋จผํŠธ๋Š” ํ™”๋ฉด์— ๋ถ™์€ ๊ฒƒ์ฒ˜๋Ÿผ ๊ทธ ์ž๋ฆฌ์— ๊ณ„์†ํ•ด์„œ ์œ„์น˜ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ย