๋‹ด๊ณฐ๋†
minkyung.dev
๋‹ด๊ณฐ๋†
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (40)
    • ๐ŸŽ€ ํ”„๋กœ์ ํŠธ (6)
      • ์ธ์‚ฌ์ดํŠธ์•„์›ƒ (2)
      • ์บก์Šคํ†ค (2)
      • ์ž๋ฆฌ์–ด๋•Œ (1)
    • ๐Ÿ‘ฉ‍๐ŸŽค ํ”„๋ก ํŠธ์—”๋“œ (22)
      • react (5)
      • nextjs (4)
      • typescript (3)
      • javascript (4)
      • html (4)
      • css (2)
    • ๐Ÿงฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (2)
      • leetcode (1)
      • programmers (0)
    • ๐Ÿง  CS (1)
    • ๐ŸŽ ํšŒ๊ณ  (2)
    • private (0)
    • ๐Ÿง‘‍๐ŸŽค์ด์ง (0)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • leetcode
  • github
  • ESLint
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ์ธํ”„๋Ÿฐ
  • vsCode
  • ์ธํ”„๋ŸฐX๋””ํ”„๋งŒ
  • javascript
  • Django
  • react-router
  • HTML
  • ๋””ํ”„๋งŒ
  • react

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
๋‹ด๊ณฐ๋†

minkyung.dev

display, position, float ์†์„ฑ ๊ฐ„์˜ ๊ด€๊ณ„
๐Ÿ‘ฉ‍๐ŸŽค ํ”„๋ก ํŠธ์—”๋“œ/css

display, position, float ์†์„ฑ ๊ฐ„์˜ ๊ด€๊ณ„

2022. 7. 13. 12:50
728x90
๋ฐ˜์‘ํ˜•

Normal flow (์ผ๋ฐ˜์ ์ธ ํ๋ฆ„์œผ๋กœ ๋ฐฐ์น˜๋˜๋Š” ๊ฒฝ์šฐ)

Normal flow๋ž€ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ•์Šค๊ฐ€ ๋ฐฐ์น˜๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ๋‹ค

 

Normal flow์—์„œ ๋ฐ•์Šค๋“ค์€ formatting context๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. CSS 2.2 ์—์„œ๋Š” table, block, inline์ด ํ•ด๋‹น๋œ๋‹ค

๋ธ”๋ก ๋ ˆ๋ฒจ์˜ ๋ฐ•์Šค๋Š” block formatting์— ์†ํ•˜๊ณ 

์ธ๋ผ์ธ ๋ ˆ๋ฒจ์˜ ๋ฐ•์Šค๋Š” inline formatting์— ์†ํ•˜๊ณ 

table formatting์€ https://www.w3.org/TR/CSS22/tables.html ์—ฌ๊ธฐ์— ์ž‘์„ฑ๋˜์–ด ์žˆ๋‹ค

 

Block formatting context

float, position์ด absolute์ธ ์š”์†Œ, ๋ธ”๋ก ๋ฐ•์Šค๋Š” ์•„๋‹ˆ์ง€๋งŒ inline-block, table-cell, table-caption๊ณผ ๊ฐ™์€ ๋ธ”๋ก ์ปจํ…Œ์ด๋„ˆ, 'visible'์ด ์•„๋‹Œ 'overflow' ๋ธ”๋ก ๋ฐ•์Šค(๋ทฐํฌํŠธ๋กœ ์ „ํŒŒ๋œ ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ )๋Š” ์ƒˆ๋กœ์šด block formatting context๋ฅผ ๋งŒ๋“ ๋‹ค

 

๋ฐ•์Šค๋Š” ํฌํ•จ ๋ธ”๋ก(containing block)์˜ ๋งจ ์œ„์—์„œ ์‹œ์ž‘ํ•ด์„œ ์„ธ๋กœ๋กœ ํ•˜๋‚˜์”ฉ ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค

๋‘ ๋ฐ•์Šค์˜ ๊ฐ„๊ฒฉ์€ margin์— ์˜ํ•ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค

margin์ด ๋งž๋‹ฟ์„ ๊ฒฝ์šฐ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค..?

 

Inline formatting context

๋ธ”๋ก ๋ ˆ๋ฒจ์˜ ๋ฐ•์Šค๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ๋ธ”๋ก ์ปจํ…Œ์ด๋„ˆ์— ์˜ํ•ด ๋งŒ๋“ค์–ด์ง„๋‹ค

๋ฐ•์Šค๋Š” ํฌํ•จ ๋ธ”๋ก(containing block)์˜ ๋งจ ์œ„์—์„œ ์‹œ์ž‘ํ•ด์„œ ๊ฐ€๋กœ๋กœ ํ•˜๋‚˜์”ฉ ๋ฐฐ์น˜๋œ๋‹ค

margin, border, padding์€ ๋ฐ•์Šค์‚ฌ์ด์—์„œ ์กด์ค‘๋œ๋‹ค ใ……ใ…‚ ๋ญ”๋ง์ด์•ผ

๋ฐ•์Šค๋Š” ์„ธ๋กœ๋กœ ์ •๋ ฌ ๋ฉ๋‹ˆ๋‹ค: bottom ๋˜๋Š” top์ด ์ •๋ ฌ๋˜๊ฑฐ๋‚˜ ์•ˆ์— ์žˆ๋Š” ํ…์ŠคํŠธ์˜ ๋ฒ ์ด์Šค๋ผ์ธ์ด ์ •๋ ฌ๋˜๋Š” ๊ฒฝ์šฐ์—

๋ผ์ธ์„ ๋งŒ๋“œ๋Š” ๋ฐ•์Šค๋ฅผ ํฌํ•จํ•˜๋Š” ์ง์‚ฌ๊ฐํ˜• ๊ณต๊ฐ„์„ line box๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค

 

line box์˜ ๋„“์ด๋Š” ํฌํ•จ ๋ธ”๋ก(containing block)๊ณผ float์˜ ์กด์žฌ์— ์˜ํ•ด ๊ฒฐ์ •๋œ๋‹ค

line box์˜ ๋†’์ด๋Š” line height calculations ์— ์žˆ๋Š” ๊ทœ์น™์— ๋”ฐ๋ผ ๊ฒฐ์ •๋œ๋‹ค

 

line box๋Š” ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ๋ชจ๋“  ๋ฐ•์Šค๋“ค๋ณด๋‹ค ์ถฉ๋ถ„ํžˆ ๋†’๋‹ค. ํ•˜์ง€๋งŒ line box๊ฐ€ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ๋ฐ•์Šค๋ณด๋‹ค ๋” ํฐ ๊ฒฝ์šฐ์—

 

 

 

Floats

๋จผ์ € normal flow์— ๋”ฐ๋ผ ๋ฐ•์Šค๊ฐ€ ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค. ๊ทธ ํ›„ ์™ผ์ชฝ ๋˜๋Š” ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•œ๋‹ค.

float์˜ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ํŠน์„ฑ์€ ์ฝ˜ํ…์ธ ๋Š” ํ๋ฅด๋“ฏ ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค

clear๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋Ÿฌํ•œ ํŠน์„ฑ์„ ํ•ด์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

์›๋ž˜ float์˜ ์šฉ๋„๋Š” ๊ธ€๊ณผ ์ด๋ฏธ์ง€๋ฅผ ํ•จ๊ป˜ ๋ฐฐ์น˜ํ–ˆ์„ ๋•Œ ์ด๋ฏธ์ง€ ์˜†์— ๊ธ€์ด ํ๋ฅด๊ฒŒ .. ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜์—ˆ๋˜ ๋ฐฉ์‹์ด๋‹ค

 

์˜ˆ๋ฅผ ๋“ค์–ด ๋นจ๊ฐ„์ƒ‰ ๋ฐ•์Šค๊ฐ€ float:left๊ฐ€ ๋˜์—ˆ๋‹ค๊ณ  ํ•˜์ž

๋นจ๊ฐ„์ƒ‰ ๋ฐ•์Šค float:left

๋นจ๊ฐ„์ƒ‰ ๋ฐ•์Šค๊ฐ€ ์œ„๋กœ ๋œจ๊ฒŒ ๋˜๊ณ  ๊ทธ ์•„๋ž˜๋ฅผ ์ดˆ๋ก์ƒ‰ ๋ฐ•์Šค๊ฐ€ ์ฑ„์šฐ๊ฒŒ ๋œ๋‹ค

๋นจ๊ฐ„์ƒ‰ ๋ฐ•์Šค float:left

๊ทธ๋Ÿฌ๋ฉด ์šฐ๋ฆฌ๋Š” ๋นจ๊ฐ„์ƒ‰ ์•„๋ž˜์— ์ดˆ๋ก์ƒ‰ ๋ฐ•์Šค๊ฐ€ ๊ฐ์ถฐ์ง„์ฑ„๋กœ ๋ณด๊ฒŒ ๋œ๋‹ค

๋นจ๊ฐ„์ƒ‰ ๋ฐ•์Šค float:left

 

๊ทธ๋ ‡๋‹ค๋ฉด ์ดˆ๋ก์ƒ‰ ๋ฐ•์Šค๋„ float: left๋ฅผ ๊ฐ–๊ฒŒ ๋˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?

์ดˆ๋ก์ƒ‰ ๋ฐ•์Šค float:left

์ดˆ๋ก์ƒ‰ ๋ฐ•์Šค๋Š” ๋นจ๊ฐ„์ƒ‰ ๋ฐ•์Šค ์˜†์œผ๋กœ ์ด๋™ํ•˜๊ฒŒ ๋˜๊ณ 

์›๋ž˜ ์ดˆ๋ก์ƒ‰ ๋ฐ•์Šค ์ž๋ฆฌ๋Š” ํŒŒ๋ž€์ƒ‰ ๋ฐ•์Šค๊ฐ€ ์ฑ„์šฐ๊ฒŒ ๋œ๋‹ค

 

clear ํ”„๋กœํผํ‹ฐ๋ฅผ ์ ์šฉํ•ด๋ณด์ž

clear๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด float ์†์„ฑ์„ ํ•ด์ œ๋œ๋‹ค

๋ชจ๋“  ๋ฐ•์Šค๋ฅผ float: left ๋กœ ์„ค์ •ํ•ด์ฃผ๊ณ  ํŒŒ๋ž€์ƒ‰ ๋ฐ•์Šค์— clear: left๋ฅผ ์ ์šฉํ•˜๋ฉด

ํŒŒ๋ž€์ƒ‰ ๋ฐ•์Šค clear:left
๋…ธ๋ž€์ƒ‰ ๋ฐ•์Šค์—๋„ clear: left๋ฅผ ์ ์šฉํ•˜๋ฉด 

 

๋…ธ๋ž€์ƒ‰ ๋ฐ•์Šค clear: left

float์„ ์‚ฌ์šฉํ•˜๋ฉด ์œ„์— ์ฒ˜๋Ÿผ ๋ฐ•์Šค๊ฐ€ ๋œจ๊ฒŒ ๋˜๋ฏ€๋กœ ๋ถ€๋ชจ ์š”์†Œ์˜ ๋†’์ด๊ฐ€ ๋ฌด์‹œ๋œ๋‹ค

 

๋ถ€๋ชจ ์š”์†Œ์˜ ๋†’์ด๋ฅผ ์„ค์ •ํ•˜๊ณ  ์‹ถ์„ ๋•Œ์—๋Š”?

1. ๋ถ€๋ชจ ์š”์†Œ overflow:hidden

overflow hidden์€ ๋ฒ—์–ด๋‚˜๋Š” ๋ถ€๋ถ„์„ ๋ณด์ด์ง€ ์•Š๊ฒŒ ํ•œ๋‹ค. ์ฆ‰ ์ž์‹ ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํฌ๊ธฐ๋งŒํผ๋งŒ ๋ณด์—ฌ์ค€๋‹ค. ๋ถ€๋ชจ ์š”์†Œ ๋‚ด๋ถ€์— ์žˆ๋Š” ์ปจํ…์ธ ์˜ ํฌ๊ธฐ์— ๋งž๊ฒŒ ๋ถ€๋ชจ ์š”์†Œ์˜ ๋†’์ด๊ฐ€ ์„ค์ •๋œ๋‹ค

 

2. ๋ถ€๋ชจ ์š”์†Œ flow-root

flow-root๋Š” formatting ๋ฃจํŠธ๊ฐ€ ์–ด๋””์žˆ๋Š”์ง€ ์ •์˜ํ•จ์œผ๋กœ์จ ์ƒˆ๋กœ์šด block formatting context๋ฅผ ๋งŒ๋“œ๋Š” ๋ธ”๋ก ์š”์†Œ ๋ฐ•์Šค๋ฅผ ๋งŒ๋“ ๋‹ค -> ใ……ใ…‚ ๋ญ”์†Œ๋ฆฌ์ž„..

Absolute

๋ฐ•์Šค๋Š” normal flow์—์„œ ์™„์ „ํžˆ ๋ฒ—์–ด๋‚˜๊ณ  ์ž์‹ ์˜ ํฌํ•จ ๋ธ”๋ก์„ ๊ธฐ์ค€์œผ๋กœ top, right, bottom, left ์†์„ฑ์— ๋”ฐ๋ผ ์›€์ง์ž…๋‹ˆ๋‹ค

 

float, absolute, root ์š”์†Œ์ธ ๊ฒฝ์šฐ, out of flow ๋ผ๊ณ  ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค

out of flow๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š” in-flow๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค

 

 

 

1. display: 'none'์ธ ๊ฒฝ์šฐ

  • position: ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค
  • float: ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

 

position๊ณผ float ์†์„ฑ์€ display๋ณด๋‹ค ์šฐ์„ ์ด์ง€๋งŒ ์˜ˆ์™ธ์ ์œผ๋กœ display: 'none'์ด๋ฉด position๊ณผ float์ด ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค

๋ฐ•์Šค ์ž์ฒด๊ฐ€ ๋งŒ๋“ค์–ด์ง€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค

 

2. position: 'absolute' or position: 'fixed'์ธ ๊ฒฝ์šฐ

  • float: ์–ด๋–ค ๊ฐ’์„ ์„ค์ •ํ•ด๋„ 'none'์ด ๋œ๋‹ค
  • display: ์•„๋ž˜์˜ ํ‘œ์— ๋”ฐ๋ผ ์„ค์ •๋œ๋‹ค

 

๋ฐ•์Šค๋Š” ์ ˆ๋Œ€์  ์œ„์น˜๋กœ ๋ฐฐ์น˜๋œ๋‹ค

๋ฐ•์Šค์˜ ์œ„์น˜๋Š” ์ž์‹ ์˜ ํฌํ•จ ๋ธ”๋ก์„ ๊ธฐ์ค€์œผ๋กœ top, right, bottom, left ์†์„ฑ์— ๋”ฐ๋ผ ๊ฒฐ์ •๋œ๋‹ค

 

3. float์ด 'none'์ด ์•„๋‹Œ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๊ฒฝ์šฐ

  • display: ์•„๋ž˜ ํ‘œ์— ๋”ฐ๋ผ ์„ค์ •๋œ๋‹ค
์ง€์ • ๊ฐ’ ๊ณ„์‚ฐ ๊ฐ’
inline-table table
inline
table-row-group
table-column
table-column-group
table-header-group
table-footer-group
table-row
table-cell
table-caption
inline-block
block
๊ธฐ์ฐจ ์ง€์ •๋œ ๊ฐ’๊ณผ ๋™์ผ

 

๋ฐ•์Šค๊ฐ€ ๋œจ๊ฒŒ ๋œ๋‹ค

 

4. ์š”์†Œ๊ฐ€ root ์š”์†Œ์ผ ๊ฒฝ์šฐ

  • display: ์œ„์˜ ํ‘œ์™€ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค

 

5. ๋‚˜๋จธ์ง€์˜ ๊ฒฝ์šฐ

  • display: ์ง€์ •๋œ ๊ฐ’์— ๋”ฐ๋ผ ์„ค์ •๋œ๋‹ค

 

์ฐธ๊ณ ์ž๋ฃŒ http://blog.wystan.net/2009/01/12/relationships-between-position-float-display

์ถœ์ฒ˜ https://youtu.be/xara4Z1b18I

์ถœ์ฒ˜ https://www.w3.org/TR/CSS22/visuren.html#dis-pos-flo

728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ‘ฉโ€๐ŸŽค ํ”„๋ก ํŠธ์—”๋“œ > css' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[CSS] Negative margin (์Œ์ˆ˜ ๋งˆ์ง„)  (0) 2022.07.14
    '๐Ÿ‘ฉ‍๐ŸŽค ํ”„๋ก ํŠธ์—”๋“œ/css' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [CSS] Negative margin (์Œ์ˆ˜ ๋งˆ์ง„)
    ๋‹ด๊ณฐ๋†
    ๋‹ด๊ณฐ๋†

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”