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

css position relative, absolute, fixed, sticky, z-index, display, flex, ์ˆ˜ํ‰, ์ˆ˜์ง ์ •๋ ฌ ๋ ˆ์ด์•„์›ƒ

by HAPPYRIN 2023. 8. 13.

position : ์š”์†Œ์˜ ์œ„์น˜ ์ง€์ • ๊ธฐ์ค€์œผ๋กœ position๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” css์†์„ฑ๋“ค์€ ๋ชจ๋‘ ์Œ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
(top, bottom, left, right, z-index..)

  • static : ๊ธฐ์ค€ ์—†์Œ, ํฌ์ง€์…˜ ์—†์Œ
  • relative : ์š”์†Œ ์ž์‹ ์„ ๊ธฐ์ค€
  • absolute : ์œ„์น˜ ์ƒ ๋ถ€๋ชจ ์š”์†Œ๋ฅผ ๊ธฐ์ค€ (์œ„์น˜ ์ƒ ๋ถ€๋ชจ ์š”์†Œ๋ฅผ ๊ผญ ํ™•์ธํ•ด์•ผํ•จ!), ๋ถ•๋œจ๋ฉด์„œ ๊ฒน์ณ์ง
  • fixed : ๋ทฐํฌํŠธ(๋ธŒ๋ผ์šฐ์ €)๋ฅผ ๊ธฐ์ค€
  • sticky : ์Šคํฌ๋กค ์˜์—ญ ๊ธฐ์ค€

top, bottom, left, right : ์š”์†Œ์˜ ๊ฐ ๋ฐฉํ–ฅ๋ณ„ ๊ฑฐ๋ฆฌ ์ง€์ •

  • auto : ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ณ„์‚ฐ
  • ๋‹จ์œ„ : px, em. rem ๋“ฑ ๋‹จ์œ„๋กœ ์ง€์ •

 
relative์™€ absoulte

 
์š”์†Œ ์Œ“์ž„ ์ˆœ์„œ (stack order)
์–ด๋–ค ์š”์†Œ๊ฐ€ ์‚ฌ์šฉ์ž์™€ ๋” ๊ฐ€๊น๊ฒŒ ์žˆ๋Š”์ง€(์œ„์— ์Œ“์ด๋Š”์ง€) ๊ฒฐ์ •!
1. ์š”์†Œ์— position ์†์„ฑ์˜ ๊ฐ’์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์œ„์— ์Œ“์ž„.(๊ธฐ๋ณธ๊ฐ’ static ์ œ์™ธ)
2. 1๋ฒˆ ์กฐ๊ฑด์ด ๊ฐ™์€ ๊ฒฝ์šฐ, z-index ์†์„ฑ์˜ ์ˆซ์ž ๊ฐ’์ด ๋†’์„ ์ˆ˜๋ก ์œ„์— ์Œ“์ž„.
3. 1๋ฒˆ๊ณผ 2๋ฒˆ ์กฐ๊ฑด๊นŒ์ง€ ๊ฐ™์€ ๊ฒฝ์šฐ, html์˜ ๋‹ค์Œ ๊ตฌ์กฐ์ผ ์ˆ˜๋ก ์œ„์— ์Œ“์ž„. (html ๊ตฌ์กฐ๊ฐ€ ๋” ๋‚˜์ค‘์— ์ž‘์„ฑ๋˜์–ด ์žˆ์„์ˆ˜๋ก)
 
z-index : ์š”์†Œ์˜ ์Œ“์ž„ ์ •๋„๋ฅผ ์ง€์ •
ํฌ์ง€์…˜์ด ์—†์œผ๋ฉด ์•„๋ฌด๋ฆฌ ์Œ“์•„๋„ ์ƒ๊ด€์ด ์—†์Œ,,, ์†์„ฑ์ด ์•ˆ ๋จน๋Š” ๊ฒƒ์ž„!

  • auto(=0) : ๋ถ€๋ชจ ์š”์†Œ์™€ ๋™์ผํ•œ ์Œ“์ž„ ์ •๋„
  • ์ˆซ์ž : ์ˆซ์ž๊ฐ€ ๋†’์„ ์ˆ˜๋ก ์œ„์— ์Œ“์ž„(์Œ์ˆ˜๋„ ๊ฐ€๋Šฅ, -1)

์š”์†Œ์˜ display๊ฐ€ ๋ณ€๊ฒฝ๋จ
- position ์†์„ฑ์˜ ๊ฐ’์œผ๋กœ absolute, fixed๊ฐ€ ์ง€์ •๋œ ์š”์†Œ๋Š” display ์†์„ฑ์ด block์œผ๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค.
 


display: flex
flex container
flex items
 
display : flex container์˜ ํ™”๋ฉด ์ถœ๋ ฅ(๋ณด์—ฌ์ง) ํŠน์„ฑ

  • flex : ๋ธ”๋ก ์š”์†Œ์™€ ๊ฐ™์ด flex container ์ •์˜
  • inline-flex : ์ธ๋ผ์ธ ์š”์†Œ์™€ ๊ฐ™์ด flex container ์ •์˜ , ์ˆ˜ํ‰

flex-direction : ์ฃผ ์ถ•์„ ์„ค์ • (์ˆ˜์ง ์ •๋ ฌ, ์ˆ˜ํ‰ ์ •๋ ฌ)

  • row : ํ–‰ ์ถ• (์ขŒ -> ์šฐ), ์ˆ˜ํ‰
  • row-reverse : ํ–‰ ์ถ• (์šฐ -> ์ขŒ), ์ˆ˜ํ‰
  • column : ์—ด ์ถ• (์œ„ -> ์•„๋ž˜), ์ˆ˜์ง
  • column-reverse : ์—ด ์ถ• (์•„๋ž˜ -> ์œ„), ์ˆ˜์ง

 
flex-wrap : flex items ๋ฌถ์Œ(์ค„ ๋ฐ”๊ฟˆ) ์—ฌ๋ถ€

  • nowrap : ๋ฌต์Œ(์ค„๋ฐ”๊ฟˆ)์—†์Œ
  • wrap : ์—ฌ๋Ÿฌ ์ค„๋กœ ๋ฌถ์Œ
  • wrap-reverse : wra์˜ ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ ๋ฌถ์Œ

 
justify-content : ์ฃผ ์ถ•์˜ ์ •๋ ฌ ๋ฐฉ๋ฒ•

  • flex-start : flex items๋ฅผ ์‹œ์ž‘์ ์œผ๋กœ ์ •๋ ฌ (๊ธฐ๋ณธ๊ฐ’)
  • flex-end : flex items๋ฅผ ๋์ ์œผ๋กœ ์ •๋ ฌ, ์šฐ์ธก ์ •๋ ฌ ๋‹จ์ˆœํžˆ ์•„์ดํ…œ๋“ค์„ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ฐ€์–ด๋ฒ„๋ฆฐ๊ฑฐ์ž„
  • center : flex items๋ฅผ ๊ฐ€์šด๋ฐ ์ •๋ ฌ
  • space-between : ๊ฐ flex item ์‚ฌ์ด๋ฅผ ๊ท ๋“ฑํ•˜๊ฒŒ ์ •๋ ฌ
  • space-around : ๊ฐ flex item์˜ ์™ธ๋ถ€ ์—ฌ๋ฐฑ์„ ๊ท ๋“ฑํ•˜๊ฒŒ ์ •๋ ฌ

 
align-content : ๊ต์ฐจ(์ˆ˜์ง) ์ถ•์˜ ์—ฌ๋Ÿฌ ์ค„ ์ •๋ ฌ ๋ฐฉ๋ฒ•

  • stretch : flex items๋ฅผ ์‹œ์ž‘์ ์œผ๋กœ ์ •๋ ฌ
  • flex-start : flex items๋ฅผ ์‹œ์ž‘์ ์œผ๋กœ ์ •๋ ฌ
  • flex-end : flex items๋ฅผ ๋์ ์œผ๋กœ ์ •๋ ฌ
  • center : flex items๋ฅผ ๊ฐ€์šด๋ฐ ์ •๋ ฌ
  • space-between : ๊ฐ felx item ์‚ฌ์ด๋ฅผ ๊ท ๋“ฑํ•˜๊ฒŒ ์ •๋ ฌ
  • space-around : ๊ฐ flex item์˜ ์™ธ๋ถ€ ์—ฌ๋ฐฑ์„ ๊ท ๋“ฑํ•˜๊ฒŒ ์ •๋ ฌ

height๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์ฃผ์ง€ ์•Š์œผ๋ฉด ๋Š˜์–ด๋‚˜๋ฒ„๋ฆผ... ์ฒซ๋ฒˆ์งธ ์ปจํ…Œ์ด๋„ˆ์— ์žˆ๋Š” ๋ฐ•์Šค์ฒ˜๋Ÿผ
align-content๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ค„๋ฐ”๊ฟˆ ์ƒํƒœ์—ฌ์•ผํ•˜๊ณ  flex-wrap์ด ์žˆ์–ด์•ผํ•˜๊ณ  ์ •๋ ฌ์ด ๊ฐ€๋Šฅํ•œ ๋นˆ ๊ณต๊ฐ„์ด ์žˆ์–ด์•ผํ•˜๊ณ  2์ค„ ์ด์ƒ์ด ์žˆ์–ด์•ผ ๋™์ž‘์„ ํ•จ
 
align-items : ๊ต์ฐจ ์ถ•์˜ ํ•œ ์ค„ ์ •๋ ฌ ๋ฐฉ๋ฒ•

  • stretch : flex items๋ฅผ ๊ต์ฐจ ์ถ•์œผ๋กœ ๋Š˜๋ฆผ
  • flex-start : flex items๋ฅผ ๊ฐ ์ค„์˜ ์‹œ์ž‘์ ์œผ๋กœ ์ •๋ ฌ
  • flex-end : flex items๋ฅผ ๊ฐ ์ค„์˜ ๋์ ์œผ๋กœ ์ •๋ ฌ
  • center : flex items๋ฅผ ๊ฐ ์ค„์˜ ๊ฐ€์šด๋ฐ ์ •๋ ฌ
  • baseline : flex items๋ฅผ ๊ฐ ์ค„์˜ ๋ฌธ์ž ๊ธฐ์ค€์„ ์—์„œ ์ •๋ ฌ (๋ฌธ์ž ๊ธฐ์ค€์„ ์ด๋ž€? abcdefg... ์„ ์„ ๋งž์ถฐ์„œ.... )

 
order : flex item์˜ ์ˆœ์„œ

  • 0 : ์ˆœ์„œ ์—†์Œ
  • ์ˆซ์ž : ์ˆซ์ž๊ฐ€ ์ž‘์„ ์ˆ˜๋ก ๋จผ์ €, ์•ž์— ์ •๋ ฌ์ด ๋œ๋‹ค.

 
flex-grow : flex item์˜ ์ฆ๊ฐ€ ๋„ˆ๋น„ ๋น„์œจ

  • 0 : ์ฆ๊ฐ€ ๋น„์œจ ์—†์Œ
  • ์ˆซ์ž : ์ฆ๊ฐ€ ๋น„์œจ

 
flex-shrink : flex item์˜ ๊ฐ์†Œ ๋„ˆ๋น„ ๋น„์œจ

  • 1 : flex container ๋„ˆ๋น„์— ๋”ฐ๋ผ ๊ฐ์†Œ ๋น„์œจ ์ ์šฉ
  • ์ˆซ์ž : ๊ฐ์†Œ ๋น„์œจ
  • ์š”์†Œ๋“ค์ด ์ฐŒ๊ธ€์–ด์ง€์ง€ ์•Š๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 0์œผ๋กœ ์ ์šฉ

 
flex-basis : flex item์˜ ๊ณต๊ฐ„ ๋ฐฐ๋ถ„ ์ „ ๊ธฐ๋ณธ ๋„ˆ๋น„

  • auto : ์š”์†Œ์˜ content(๋‚ด์šฉ) ๋„ˆ๋น„
  • ๋‹จ์œ„ : px, em, rem ๋“ฑ ๋‹จ์œ„๋กœ ์ง€์ • 

 


 
+ position๊ณผ display,  css ๋ ˆ์ด์•„์›ƒ ๋ถ€๋ถ„์€ ์ž์„ธํ•˜๊ฒŒ ํ•œ ๋ฒˆ ๋” ๊ณต๋ถ€๋ฅผ ํ•ด์•ผ๊ฒ ๋‹ค!