TIL 04 - CSS layout

crystaleeยท2021๋…„ 6์›” 1์ผ
3

HTML/CSS

๋ชฉ๋ก ๋ณด๊ธฐ
4/5
post-thumbnail

๐Ÿ“– CSS layout

css์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ  ์ค‘์š”ํ•˜์ง€๋งŒ ์ •!๋ง! ํ—ท๊ฐˆ๋ฆฌ๋Š”
๋ ˆ์ด์•„์›ƒ(display, float, position, flexbox) ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์ •๋ฆฌ ํ•ด๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค.๐Ÿ˜

๐Ÿ‘‰ Display

display : box type์„ ๊ฒฐ์ •ํ•˜๋Š” css ์†์„ฑ
block ๋ฉด(์˜์—ญ) / inline ์„ (ํ๋ฆ„) ์œผ๋กœ ๋ณด๋ฉด ์ดํ•ด๊ฐ€ ์‰ฌ์šธ ๊ฒƒ ๊ฐ™๋‹ค.

์†์„ฑ๊ฐ’์˜๋ฏธ์ข…๋ฅ˜
block- ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์š”์†Œ ๋ฐฐ์น˜ = ์„ธ๋กœ๋กœ ๋ฐฐ์น˜
- ๊ธฐ๋ณธ width ๊ฐ’์ด 100%
- width, height๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ
- vertical-align ์ ์šฉ๋˜์ง€ ์•Š์Œ
- text-align ์ ์šฉ๋˜์ง€ ์•Š์Œ
div, h1~h6, p, ul, li, dl, table, td,
th, figure,hr, figcaption, caption,
header, nav, footer, section, article,
aside, blockqoute, form, fiedset...
inline- ํ•œ ์ค„์— ์—ฌ๋Ÿฌ๊ฐœ ๋ฐฐ์น˜ = ๊ฐ€๋กœ๋กœ ๋‚˜์—ด๋˜๋Š” ์‹์œผ๋กœ ๋ฐฐ์น˜
- ๊ธฐ๋ณธ width ๊ฐ’์€ ์ปจํ…์ธ  ๋„ˆ๋น„ ๊ฐ’
- width, height๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ
- ์ž์‹์š”์†Œ๋กœ ๋˜ ๋‹ค๋ฅธ ์ธ๋ผ์ธ ํƒœ๊ทธ๋งŒ ๊ฐ€๋Šฅ(p์ œ์™ธ)
span, a, em, del, br, q, strong, input
textarea, select, img...
inline-block- ํ•œ ์ค„์— ์—ฌ๋Ÿฌ ๊ฐœ ๋ฐฐ์น˜(์ธ๋ผ์ธ) + ๋„ˆ๋น„๋†’์ด ์ง€์ •๊ฐ€๋Šฅ(๋ธ”๋ก)

๐Ÿ’โ€โ™€๏ธ block

  • ๊ธธ์„ ๋ง‰๋Š” ์„ฑ์งˆ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
  • width๋ฅผ ๋”ฐ๋กœ ์„ ์–ธํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, width = ๋ถ€๋ชจ์˜ content-box์˜ 100%
  • width๋ฅผ ๋”ฐ๋กœ ์„ ์–ธํ•œ ๊ฒฝ์šฐ, ๋‚จ์€ ๊ณต๊ฐ„์€ margin์ด ์ฑ„์›Œ์ง
    (์˜์—ญ์„ ์นจ๋ฒ” ๋‹นํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด์„œ)
  • block์˜ ๊ฒฝ์šฐ width, height, padding, border, margin์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • block type์„ ๊ฐ€์šด๋ฐ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ• : margin : 0 auto ๐Ÿ‘‰ margin top๊ณผ bottom์€ 0์„ ์ฃผ๊ณ  right์™€ left๋Š” auto (๋‚จ๋Š” px๋ฅผ ์ž๋™์œผ๋กœ ์ฑ„์›€)๋ฅผ ์ค€๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋ณ„๋„๋กœ margin left : auto;๋งŒ ์ฃผ๋ฉด block์€ ์˜ค๋ฅธ์ชฝ ์ •๋ ฌ์ด ๋œ๋‹ค.

โœ๏ธ ์˜ˆ์‹œ) ๋ถ€๋ชจ์˜ width๊ฐ€ 1000px์ด๋ผ๊ณ  ๊ฐ€์ • ํ›„, ์ž์‹ width๋ฅผ 600px๋กœ ์ง€์ •ํ•˜๋ฉด ๋‚จ์€ 400px์ด ์ž๋™์ ์œผ๋กœ margin์œผ๋กœ ์ฑ„์›Œ์ง„๋‹ค.

๐Ÿ’โ€โ™€๏ธ inline

  • ์ˆ˜ํ‰์œผ๋กœ ์Œ“์ธ๋‹ค.
  • ๊ฐ€๋กœ, ์„ธ๋กœ ๊ฐ’ ๊ฐ€์งˆ์ˆ˜ ์—†๋‹ค.
  • text ์ž‘์„ฑ๊ณผ ๋™์ผํ•œ ๋งฅ๋ฝ, ์˜†์œผ๋กœ ๋” ์“ธ ๊ณต๊ฐ„์ด ์—†์œผ๋ฉด ์ž๋™์ ์œผ๋กœ ๋ฐ‘ ์ค„๋กœ ๋‚ด๋ ค๊ฐ
  • margin๊ณผ padding์˜ top,bottom์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.
  • width, height, padding-top, padding-bottom, border-top, border-bottom, margin-top, margin-bottom ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค.(์œ„ ์•„๋ž˜์˜ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š”๊ฒƒ์€ ์•ˆ๋œ๋‹ค ๊ธฐ์กด ์˜์—ญ์„ ๋ฎ์–ด๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์—)

๐Ÿง width๊ฐ€ ์•ˆ๋˜๋Š” ์ด์œ  : ์ธ๋ผ์ธ ์š”์†Œ์˜ width๋ฅผ ๋ถ€๋ชจ ์š”์†Œ๊ฐ€ ๋‹ค ๋‹ด์„ ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ผ ๋•Œ ์• ๋งคํ•ด์ง€๊ธฐ ๋•Œ๋ฌธ์— width๊ฐ€ ์žˆ๋Š”๋ฐ ์ธ๋ผ์ธ ์š”์†Œ๋ฅผ ๋Š์–ด์„œ ๋ฐ‘ ์ค„์— ๋‚ด๋ ค ๋†“์„ ์ˆ˜๋„, ๋ถ€๋ชจ๋ฅผ ์˜ค๋ฒ„ํ•ด์„œ ๋‚˜๊ฐˆ ์ˆ˜๋„ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๐Ÿ’โ€โ™€๏ธ inline-block

  • block์˜ ์žฅ์ ๊ณผ inline์˜ ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
  • text์— ํŠนํ™”๋˜์–ด ์žˆ์ง€๋งŒ, ๊ฐ€๋กœ/์„ธ๋กœ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.
    -margin๊ณผ padding์˜ top,bottom ๊ฐ’๋„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.
  • inline์ฒ˜๋Ÿผ ํ๋ฅด์ง€๋งŒ width, padding-top, padding-bottom, border-top, border-bottom, margin-top, margin-bottom์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿ‘‰ Flexbox

flexbox๋ž€ ์š”์†Œ์˜ ํฌ๊ธฐ๊ฐ€ ๋ถˆ๋ถ„๋ช…ํ•  ๋•Œ์—๋„ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ํฌ๊ธฐ์˜ box ์•ˆ์— items์„ ๋„ฃ์–ด์„œ ๋™์ผํ•œ ๊ฐ„๊ฒฉ๊ณผ ์‚ฌ์ด์ฆˆ๋กœ ๋ฐฐ์—ดํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

flexbox๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ฃผ์˜ํ•ด์•ผ ํ•  4๊ฐ€์ง€ ์š”์†Œ

๐Ÿ’โ€โ™€๏ธ flexbox ์„ ์–ธ

  • ๋‚ด๊ฐ€ ์ •๋ ฌ์„ ํ•˜๋ ค๊ณ  ํ•˜๋Š” ์š”์†Œ์˜ ๋ถ€๋ชจ์—๊ฒŒ flexbox์„ ์–ธ์„ ํ•ด์•ผํ•œ๋‹ค.
    ๐Ÿ‘‰ display : flex; (box์˜ ํƒ€์ž…์ด๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ block๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ block์€ ๋ถˆ๊ฐ€๋Šฅํ•œ ์š”์†Œ๋„ ์žˆ์Œ)
  • ๋งŒ์•ฝ ๋ถ€๋ชจ ์š”์†Œ๊ฐ€ inline ์ด๋ผ๋ฉด display : inline-flex๋กœ ์ง€์ •ํ•ด์ค€๋‹ค.

๐Ÿ’โ€โ™€๏ธ flex-direction

flex items์˜ ์ฃผ์ถ•(main-axis)๋ฅผ ์„ค์ •ํ•ด์ค€๋‹ค.

์†์„ฑ๊ฐ’์˜๋ฏธ
row(default)items๋ฅผ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ(์ˆ˜ํ‰์ถ•)์œผ๋กœ ํ‘œ์‹œ
A,B,C
row-reverseitems๋ฅผ row ๋ฐ˜๋Œ€์ถ•์œผ๋กœ ํ‘œ์‹œ
C,B,A
columnitems๋ฅผ ์œ„์ชฝ์—์„œ ์•„๋ž˜์ชฝ(์ˆ˜์ง์ถ•)์œผ๋กœ ํ‘œ์‹œ
A
B
C
column-reverseitems๋ฅผ column ๋ฐ˜๋Œ€ ์ถ•์œผ๋กœ ํ‘œ์‹œ
C
B
A

๐Ÿ’โ€โ™€๏ธ flex-wrap

items์˜ ์—ฌ๋Ÿฌ ์ค„ ๋ฐ”๊ฟˆ์„ ์„ค์ •ํ•ด์ค€๋‹ค.

์†์„ฑ๊ฐ’์˜๋ฏธ
nowrap(default)๋ชจ๋“  items์ด ํ•œ ์ค„์— ๋ฐฐ์น˜๊ฐ€ ๋œ๋‹ค.
wrapitems๋ฅผ ์—ฌ๋Ÿฌ ์ค„๋กœ ๋ฐฐ์น˜ํ•ด ๋„˜์น˜๋ฉด ์•„๋ž˜๋กœ ๋–จ์–ด์ง€๊ฒŒ ํ•œ๋‹ค. (width,height ์ง€์ • ๊ฐ€๋Šฅ)
wrap-reverseitems๋ฅผ wrap์˜ ์—ญ ๋ฐฉํ–ฅ์œผ๋กœ ์—ฌ๋Ÿฌ ์ค„๋กœ ๋ฐฐ์น˜.

flex-wrap : nowrap; (๊ธฐ๋ณธ๊ฐ’) ๐Ÿ‘‰ ์ค„ ๋ฐ”๊พธ์ง€ ์•Š์Œ

๋ถ€๋ชจ width๊ฐ€ 600px์ด๊ณ  ์ž์‹์ด 300px์”ฉ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด, ๊ธฐ๋ณธ์ ์œผ๋กœ 300px+300px๋กœ 2๊ฐœ๋งŒ ์˜ฌ ์ˆ˜ ์žˆ์ง€๋งŒ flex-wrap : nowrap;์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ์‹ธ์ง€ ์•Š๊ณ  ์ž์‹์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์ค„์—ฌ ํ•œ ์ค„๋กœ ์ •๋ ฌํ•œ๋‹ค. (200px์”ฉ ํ•œ ์ค„๋กœ)

flex-wrap : wrap; ๐Ÿ‘‰ ์ค„ ๋ฐ”๊ฟˆ

๋ถ€๋ชจ width๊ฐ€ 600px์ด๊ณ  ์ž์‹์ด 300px์”ฉ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด 300px+300px๋กœ 2๊ฐœ๊ฐ€ ์˜ค๊ณ  ๋ฐ‘ ์ค„์— 300px์ด ๋–จ์–ด์ง„๋‹ค. ํ•œ ์ค„์— ๋ชจ๋‘ ์ •๋ ฌํ•  ๋•Œ ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•˜๋ฉด ์—ฌ๋Ÿฌ ์ค„์„ ๋งŒ๋“ ๋‹ค.

๐Ÿค” ๊ฐ’์„ ์ง€์ •ํ•ด์ฃผ์ง€ ์•Š์„ ๊ฒฝ์šฐ ๋ชจ๋“  ์š”์†Œ๋“ค์ด ํ•œ ์ค„์— ์ •๋ ฌ๋˜๋ ค๊ณ  ํ•˜๊ธฐ ๋•Œ๋ฌธ์— width ๊ฐ’์„ ์ฃผ์–ด overflow ๋œ ์š”์†Œ๋“ค์€ ๋ฐ‘์œผ๋กœ ๋–จ์–ด์ง€๊ฒŒ ํ•œ๋‹ค


๐Ÿ’โ€โ™€๏ธ justify-content

๋‚ด๊ฐ€ ์„ ์–ธํ•œ flex-direciton๊ณผ ๊ฐ™์€ ๋ฐฉํ–ฅ, ์ฆ‰ ์ฃผ์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ ํ•ด์ฃผ๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ

์†์„ฑ๊ฐ’์˜๋ฏธ
flex-start(default)items๋ฅผ ์‹œ์ž‘์ ์œผ๋กœ ์ •๋ ฌ
flex-end)items๋ฅผ ๋์ ์œผ๋กœ ์ •๋ ฌ
centeritems๋ฅผ ๊ฐ€์šด๋ฐ ์ •๋ ฌ
space-between์‹œ์ž‘ item์€ ์‹œ์ž‘์ ์— ๋งˆ์ง€๋ง‰ item์€ ๋์ ์— ์ •๋ ฌ๋˜๊ณ  ๋‚˜๋จธ์ง€ ์‚ฌ์ด ๊ฐ„๊ฒฉ์ด ๊ณ ๋ฅด๊ฒŒ ์ •๋ ฌ
space-arounditem๋ฅผ ๊ท ๋“ฑํ•œ ์—ฌ๋ฐฑ์„ ํฌํ•จํ•˜์—ฌ ์ •๋ ฌ

๐Ÿ’โ€โ™€๏ธ align-items, align-content

๊ต์ž์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ ํ•ด์ฃผ๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ
๐Ÿšจ flex-wrap์„ ํ†ตํ•ด items๊ฐ€ 2์ค„ ์ด์ƒ์ด๋ฉฐ ์—ฌ๋ฐฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ๋งŒ ๊ฐ€๋Šฅ

์†์„ฑ๊ฐ’์˜๋ฏธ
stretch(default)Container์˜ ๊ต์ž ์ถ•์„ ์ฑ„์šฐ๊ธฐ ์œ„ํ•ด items๋ฅผ ๋Š˜๋ฆฐ๋‹ค.
flex-startitems๋ฅผ ์‹œ์ž‘์ ์œผ๋กœ ์ •๋ ฌ
flex-enditems๋ฅผ ๋์ ์œผ๋กœ ์ •๋ ฌ
centeritems๋ฅผ ๊ฐ€์šด๋ฐ ์ •๋ ฌ
space-between์‹œ์ž‘ item์€ ์‹œ์ž‘์ ์— ๋งˆ์ง€๋ง‰ item์€ ๋์ ์— ์ •๋ ฌ๋˜๊ณ  ๋‚˜๋จธ์ง€ ์‚ฌ์ด ๊ฐ„๊ฒฉ์ด ๊ณ ๋ฅด๊ฒŒ ์ •๋ ฌ
space-arounditems๋ฅผ ๊ท ๋“ฑํ•œ ์—ฌ๋ฐฑ์„ ํฌํ•จํ•˜์—ฌ ์ •๋ ฌ
  • align-items : ํ•˜๋‚˜์˜(๊ฐ์ž์˜) flex line์— ํ๋ฅด๋Š” ๊ต์ž์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
    (flex wrap : nowrap, rap ๋ชจ๋‘ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)
    ์˜ˆ์™ธ์ ์œผ๋กœ space-between, space-around๋Š” space๊ฐ€ ์š”์†Œ์™€ ์š”์†Œ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ์„ ์ฃผ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ ๋ถˆ๊ฐ€
  • align-content : ๊ฐ์ž์˜ ๊ต์ž์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ „์ฒด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜์—ฌ ๊ต์ž์ถ•์„ ์ •๋ ฌ ํ•  ๋•Œ ์‚ฌ์šฉ(flex wrap : rap ์ผ ๊ฒฝ์šฐ ์‚ฌ์šฉ)
    ์ด๋•Œ๋Š” space-between๊ณผ space-around๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๐Ÿ“ข TIP ๋จผ์ € align-items๋ฅผ ํ•ด๋ณด๊ณ  ์•ˆ๋˜๋ฉด ๊ทธ ์ดํ›„์— align-content๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹๋‹ค.

๐Ÿ‘‰ Float

float๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  : block์š”์†Œ๋“ค์„ ๊ฐ€๋กœ๋ฐฐ์น˜ ํ•˜๊ธฐ ์œ„ํ•ด
์š”์†Œ๋ฅผ ์ขŒ์šฐ๋ฐฉํ–ฅ(์ˆ˜ํ‰์ •๋ ฌ)์œผ๋กœ ๋„์šธ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ์—ญํ•  (๋ฉ”๋‰ด ๋˜๋Š” ๋ ˆ์ด์•„์›ƒ์„ ๊ตฌ์„ฑํ•œ๋‹ค.)

์†์„ฑ๊ฐ’์˜๋ฏธ
none์š”์†Œ ๊ฐ„ ๋„์›€ ์—†์Œ(default)
left์™ผ์ชฝ์— ์š”์†Œ๋ฅผ ๋„์šด๋‹ค (1,2,3,4)
right์˜ค๋ฅธ์ชฝ์— ์š”์†Œ๋ฅผ ๋„์šด๋‹ค(4,3,2,1) * ์˜ค๋ฅธ์ชฝ ์ •๋ ฌ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์šฐ์ธก์—์„œ ์š”์†Œ๊ฐ€ ์‹œ์ž‘๋˜์–ด ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€๋‹ค.

๐Ÿค” float ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ณ€ํ• ๊นŒ?

  • ํ•œ ๋ถ€๋ชจ์— ์žˆ๋Š” ์ž์‹(block)์„ float ์‹œํ‚ฌ ๊ฒฝ์šฐ, ๊ทธ ์ž์‹์€ ์œ„๋กœ ๋ถ•๋œจ๊ฒŒ ๋˜๋ฉฐ ๋ถ€๋ชจ์—๊ฒŒ ์—†๋Š” ์ทจ๊ธ‰์„ ๋ฐ›๊ฒŒ ๋˜๊ณ  ๋‚˜๋จธ์ง€ ์ž์‹๋“ค์€ ๋นˆ ๊ณต๊ฐ„์„ ์ฑ„์šฐ๊ฒŒ ๋˜๋ฉฐ,
    ๋ถ€๋ชจ์˜ height ์—ญ์‹œ ๋น ์ง„ ์ž์‹๋งŒํผ ์ค„์–ด๋“ค๊ฒŒ ๋œ๋‹ค.
  • left๋‚˜ right๋กœ ์ง€์ • ์‹œ display์†์„ฑ์€ ๋ฌด์‹œ๋˜๊ณ  block ํƒœ๊ทธ ์„ฑ์งˆ์„ ๊ฐ€์ง„๋‹ค.(inline,inline block ๋ชจ๋‘ block์œผ๋กœ ๋ณ€๊ฒฝ๋˜์–ด์„œ width์™€ height ๊ฐ’์„ ์ค„ ์ˆ˜ ์žˆ๊ฒŒ๋œ๋‹ค.)
  • ํ•˜์ง€๋งŒ ๊ธธ์„ ๋ง‰์ง€ ๋ชปํ•˜๋Š” block์ด ๋œ๋‹ค.
    - width ๊ฐ’์„ ์ฃผ์ง€ ์•Š์€ ์ƒํƒœ์—์„œ block์„ floatํ•  ๊ฒฝ์šฐ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” content๋งŒํผ์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.
    - float๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด block ์‚ฌ์šฉ ์‹œ ์ž๋™์œผ๋กœ ๋“ค์–ด์˜ค๋Š” margin๊ฐ’๋„ ๋“ค์–ด์˜ค์ง€ ์•Š๊ฒŒ ๋œ๋‹ค.
  • float ๋‚˜๋งŒ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.(block์•ˆ์— ์žˆ๋Š” content๋“ค์€ float์— ์˜ํ–ฅ์„ ๋ฐ›๊ณ  layout์ด ๋ฌด๋„ˆ์ ธ๋ฒ„๋ฆฐ๋‹ค.)

๐Ÿค” float ์‚ฌ์šฉ ํ›„ ๋ถ•๊ดด๋œ ๋ ˆ์ด์•„์›ƒ ๋ณต๊ตฌํ•˜๋Š” ๋ฒ•

float ์†์„ฑ์ด ์ ์šฉ๋œ ์š”์†Œ์˜ ์ฃผ์œ„๋กœ ๋‹ค๋ฅธ ์š”์†Œ๋“ค์ด ํ๋ฅด๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์†์„ฑ์„ ํ•ด์ œํ•ด์•ผํ•œ๋‹ค.
๐Ÿšจ float ํ•ด์ง€ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ์š”์†Œ๊ฐ€ ๊ฒน์ฒ˜ ๋‹ค์Œ์— ์˜ค๋Š” ๊ฒƒ์„ ๋’ค๋ฎ๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ’โ€โ™€๏ธ clear : left/right/both

  • ๋‹ค์Œ์œผ๋กœ ์˜ค๋Š” ํ˜•์ œ ์š”์†Œ์— clear : left/right/both๋ฅผ ์ถ”๊ฐ€ํ•ด ํ•ด์ œํ•œ๋‹ค.
  • ๋‹จ, ๋‹ค์Œ์œผ๋กœ ์˜ค๋Š” ํ˜•์ œ ์š”์†Œ์—๋Š” float ์†์„ฑ์ด ์ ์šฉ ๋˜์–ด์žˆ์ง€ ์•Š์•„์•ผํ•œ๋‹ค.

๐Ÿ’โ€โ™€๏ธ overflow : hidden/auto

  • ๋ถ€๋ชจ์—๊ฒŒ overflow : hidden์„ ์ ์šฉํ•˜๋ฉด float๋กœ ์ธํ•ด ์ง‘๋‚˜๊ฐ„ ์ž์‹์„ ์ฐพ์•„์˜จ๋‹ค.

๐Ÿ’โ€โ™€๏ธ Clearfix

  • ๊ฐ€์žฅ ๋ชจ๋ฒ”์ ์œผ๋กœ ํ•˜๋Š” ๋ฐฉ๋ฒ• clear๋Š” float๋กœ ์ธํ•˜์—ฌ ๋ง๊ฐ€์ง„ ์†์„ฑ์„ ๊ณ ์น˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์ด๋‹ค.(๋ถ€๋ชจ์š”์†Œ์— clearfix class๋ฅผ ์ถ”๊ฐ€ class=clearfix)
  • clear : left ๐Ÿ‘‰ left๋กœ float๋œ ์š”์†Œ๋ฅผ ์ฐพ์•„ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค.
  • clear : both ๐Ÿ‘‰ left, right ๋ชจ๋‘ ์ฐพ์•„๋‚ด์„œ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๊ฒ ๋‹ค.
  • clear์€ display๊ฐ€ block์ธ ์š”์†Œ์—๋งŒ ์ ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿ™†โ€โ™€๏ธ float : left ์‚ฌ์šฉ์‹œ์—๋Š” clear : left, float : right ์‚ฌ์šฉ์‹œ์—๋Š” clear : right ํ•ด์ œ


๐Ÿ‘‰ Position

์š”์†Œ์— ์ขŒํ‘œ๊ฐ’์„ ์ฃผ์–ด๋ณด๋‹ค ์ž์œ ๋กญ๊ฒŒ ๋ฐฐ์น˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค.

๐Ÿšจ ์ฃผ์˜ํ•  ์  2๊ฐ€์ง€
1. ๋‚ด๊ฐ€ ์–ด๋–ค ์ข…๋ฅ˜์˜ position์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€
2. ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ํฌ์ง€์…˜์€ ์–ด๋–ค ๊ธฐ์ค€์œผ๋กœ ์š”์†Œ๋ฅผ ์œ„์น˜์‹œํ‚ค๋Š”์ง€

์†์„ฑ๊ฐ’์˜๋ฏธ
static(๊ธฐ๋ณธ๊ฐ’) ์œ„์—์„œ ์•„๋ž˜๋กœ ํ๋ฆ„๋Œ€๋กœ ์œ„์น˜ ์‹œํ‚ด
relative(์ƒ๋Œ€์ ์œ„์น˜) ๋ถ€๋ชจ์š”์†Œ์— ์ ์šฉ, ๋ณธ๋ž˜ ์œ„์น˜ํ•˜๋Š” ์ž๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ขŒํ‘œ๊ฐ’ ์„ค์ •ํ•˜์—ฌ ์œ„์น˜์‹œํ‚ด
absolute(์ ˆ๋Œ€์ ์œ„์น˜) ์ž์‹์š”์†Œ์— ์ ์šฉ, ๋‚˜๋ฅผ ํฌํ•จํ•˜๋Š” ์ƒ์œ„์š”์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜์—ฌ ์ขŒํ‘œ๊ฐ’ ์„ค์ •ํ•˜์—ฌ ์œ„์น˜์‹œํ‚ด
fixedviewport์„ ๊ธฐ์ค€์œผ๋กœ ์ขŒํ‘œ๊ฐ’์„ ์„ค์ •ํ•˜์—ฌ ์œ„์น˜์‹œํ‚ด
sticky์Šคํฌ๋กค์‹œ ์œ„์น˜์˜ ๊ฐ’์„ ์ธ์‹ํ•ด fixed ์†์„ฑ์„ ์ ์šฉ์‹œํ‚ด (IE์—์„œ ์ง€์›ํ•˜์ง€ ์•Š์•„ ๋งŽ์ด ์‚ฌ์šฉ์•ˆ๋จ)

๐Ÿ’โ€โ™€๏ธ static

  • ๋ชจ๋“  ์š”์†Œ์˜ default ํฌ์ง€์…˜ ๊ฐ’

๐Ÿ’โ€โ™€๏ธ relative

  • ์ด๋™์˜ ๊ธฐ์ค€์  : ์ž๊ธฐ ์ž์‹ ์ด ๋ณธ๋ž˜ ์žˆ์—ˆ๋˜ ์ž๋ฆฌ / ์‚ฌ์šฉํ•˜๊ฒŒ๋˜๋ฉด float์ฒ˜๋Ÿผ ๋ถ• ๋œจ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋˜์ง€๋งŒ, float์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ์ž์‹ ์˜ ์›๋ž˜ ์œ„์น˜๋ฅผ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์Œ

    position : relative;
    top : 20px; ๐Ÿ‘‰ top์„ ๊ธฐ์ค€์œผ๋กœ 20px ๋–จ์–ด์ง.
    right : 200px; ๐Ÿ‘‰ right์„ ๊ธฐ์ค€์œผ๋กœ 200px ๋–จ์–ด์ง.

๐Ÿ’โ€โ™€๏ธ absolute

  • ์ž์‹ ์ด ์ •ํ•˜๊ณ  ์‹ถ์€ ๊ธฐ์ค€์ (๋ถ€๋ชจ)์„ ์ƒˆ๋กœ ์ •ํ•  ์ˆ˜ ์žˆ์Œ <-> float๋Š” ๋ถ€๋ชจ๋ฅผ ์ž์‹ ์ด ๊ณ ๋ฅผ ์ˆ˜ ์—†๊ณ  ์ž๊ธฐ ์ง๊ณ„๋ถ€๋ชจ๋ฅผ ๊ธฐ์ค€์ ์œผ๋กœ ๋‘”๋‹ค.
  • ์„ ํƒ์˜ ๊ธฐ์ค€ : position์ด static์ด ์•„๋‹Œ ์š”์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ด์„œ ์ž๊ธฐ ์ž์‹ ์„ ์œ„์น˜์‹œํ‚จ๋‹ค.
  • ์ž์‹ ์ด ์–ด๋–ค ์กฐ์ƒ ์š”์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์‚ผ์•„์„œ ์ด๋™ํ•  ๊ฒƒ์ธ์ง€ ๊ธฐ์ค€์  ์„ค์ •์ด ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๋‹ค. (๋Œ€๊ฒŒ ์ฃผ๋ณ€ ์š”์†Œ์— ์•„๋ฌด๋Ÿฐ ์˜ํ–ฅ์„ ๋ผ์น˜์ง€ ์•Š๋Š” relative๋ฅผ ์„ค์ •ํ•œ๋‹ค)

float์™€ ์œ ์‚ฌํ•œ ์ 

  • display๊ฐ€ block์œผ๋กœ ๋ฐ”๋€๋‹ค.
  • ๊ธธ์„ ๋ง‰์ง€ ๋ชปํ•˜๋Š” block(margin์€ ์•ˆ์ƒ๊น€)
  • float ์ฒ˜๋Ÿผ ๋ถ• ๋œฌ๋‹ค ๊ทธ๋ž˜์„œ ๋ฐ‘์ด๋‚˜ ์˜†์— ์žˆ๋Š” ์š”์†Œ๊ฐ€ float์ฒ˜๋Ÿผ ๊ธฐ์ค€์ด ๋˜๋Š” ์š”์†Œ ์ž๋ฆฌ๋กœ ์˜ฌ๋ผ์˜จ๋‹ค.
  • ์ž์‹์ด absolute๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ˆœ๊ฐ„ ๋ถ€๋ชจ๋Š” ์ž์‹์ด ์ง‘ ๋‚˜๊ฐ”๋‹ค ์ƒ๊ฐํ•˜์—ฌ height๋ฅผ ์ค„์ธ๋‹ค.

๐Ÿ’โ€โ™€๏ธ fixed

  • absolute์™€ ๊ฑฐ์˜ ๋™์ผํ•˜๋‹ค.
  • fixed์™€ absolute์˜ ์ฐจ์ด๋Š” fixed๋Š” ๋ช…ํ™•ํ•œ ๊ธฐ์ค€์ ์ด ์žˆ๋‹ค = viewport
    (viewport = ๋‚ด๊ฐ€ ๋ณด๊ณ  ์žˆ๋Š” ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์˜ ์ „์ฒด)
  • ๋ธŒ๋ผ์šฐ์ €์ƒ ์•„๋ž˜ ๋‚ด์šฉ์„ ๋ณด๊ธฐ ์œ„ํ•ด ๋“œ๋ž˜๊ทธ๋กœ ๋‚ด๋ ค๋„ fixed๋กœ ๊ณ ์ •ํ•œ ๊ฒƒ์€ ๊ณ„์† ๊ทธ ์ž๋ฆฌ์— ๊ณ ์ •(ex. ํ€ต๋ฉ”๋‰ด)

๐Ÿค” z-index

position์„ ์‚ฌ์šฉํ•ด์„œ ํ•ด๋‹น ์š”์†Œ๊ฐ€ ๋ถ•๋œจ๊ฒŒ ๋˜์—ˆ์„ ๊ฒฝ์šฐ, ์ž๊ธฐ ์ž์‹ ์ด z์ถ•์œผ๋กœ ์–ด๋Š ์œ„์น˜์— ์žˆ๋Š”์ง€๋ฅผ ์„ค์ •ํ•˜๋Š” ์†์„ฑ์ด๋‹ค. ์„ค์ •ํ•˜๋Š” ์ด์œ ๋Š” 2๊ฐœ์˜ ์š”์†Œ๋ฅผ position์œผ๋กœ ๋„์šด ๊ฒฝ์šฐ ํ•œ ์š”์†Œ๊ฐ€ ๋‹ค๋ฅธ ํ•œ ์š”์†Œ์˜ ์ผ๋ถ€๋ถ„์„ ๋ฎ์œผ๋ ค๊ณ  ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
z-index : 2/ z-index : 1 ์ด ๊ฒฝ์šฐ 2๊ฐ€ 1๋ณด๋‹ค ์œ„์— ์žˆ์œผ๋ฏ€๋กœ 2๊ฐ€ 1์„ ๋ฎ์–ด๋ฒ„๋ฆฐ๋‹ค.

๐Ÿ™†โ€โ™€๏ธ ํŠน์ • ์žฅ์†Œ์— ๊ณ ์ •์‹œ์ผœ ๋†“์•„์•ผ ํ•œ๋‹ค = position
๐Ÿ™†โ€โ™€๏ธ ๋‘ ์š”์†Œ๋ฅผ ์˜†์œผ๋กœ ๋ฐฐ์น˜์‹œ์ผœ์•ผ ํ•œ๋‹ค = float


โ—๏ธ๋งˆ์น˜๋ฉฐโ—๏ธ

๋ ˆ์ด์•„์›ƒ ํŒŒํŠธ๋Š” ํ• ๋•Œ๋งˆ๋‹ค ๋Š˜ ์ƒˆ๋กญ๊ฒŒ ๋Š๊ปด์ ธ์š” ๋งˆ์น˜ ์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” ๊ฒƒ ๊ฐ™์€..
์ดํ•ด๊ฐ€ ์–ด๋Š์ •๋„ ๋˜์—ˆ๋‹ค ์ƒ๊ฐํ•ด์„œ ๋ง‰์ƒ ์ฝ”๋”ฉ์„ ์งœ๋ณด๋ฉด ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋ฒ„๋ฒ…๊ฑฐ๋ฆฌ๊ธฐ๋งŒ ํ•˜๋‹ˆ๊นŒ ๋‹ต๋‹ตํ•˜๋„ค์š” ๐Ÿ˜ข ๊ทธ๋ž˜๋„ ํฌ๊ธฐํ•˜์ง€๋ง๊ณ  ์ดํ•ด๊ฐ€ ์ œ๋Œ€๋กœ ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ด์„œ ๊ณต๋ถ€ํ•ฉ์‹œ๋‹ค ํ™”์ดํŒ…..! ๐Ÿ™‹โ€โ™€๏ธ

profile
์ฝ”๋ฆฐ์ด ์„ฑ์žฅ์ผ๊ธฐ

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

comment-user-thumbnail
2021๋…„ 6์›” 4์ผ

wow ์ˆ˜์ •๋‹˜ ์ •๋ฆฌ ๋ฌด์Šจ์ผ์ด์ ธ ๊ฐ€๋…์„ฑ ์ฑ„๊ณ ์ฑ„๊ณ  ๐Ÿ™†โ€โ™€๏ธ

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ