๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿ“บ Front End/- HTML,css,Javascript

[CSS] Box Modeling์— ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ(margin, padding, border)

by Wonit 2020. 10. 4.

ํ•œ ์›น ์‚ฌ์ดํŠธ๋ฅผ ๋ด๋ณด์ž.

 

์›น์‚ฌ์ดํŠธ๋Š” ๋‚ด๊ฐ€ ๋””์ž์ธ์ ์œผ๋กœ ์ข‹์•„ํ•˜๊ณ  ํ•™์Šต์„ ์œ„ํ•ด ๋ฒค์น˜๋งˆํ‚น ํ•˜๊ณ  ์žˆ๋Š” ๋””์ž์ธ ๋ฒ ์ด์Šค๋ฅผ ๋ณผ ๊ฒƒ์ด๋‹ค.

์—ฌ๊ธฐ ์ด ๋ฉ‹์ง„ ๋””์ž์ธ๋ฒ ์ด์Šค ํ™ˆํŽ˜์ด์ง€์—๋„ Box Modeling์ด ์ ์šฉ๋˜์–ด ์žˆ๋‹ค.

์ด๋Ÿฐ ๋นจ๊ฐ„ ๋„ค๋ชจ๋“ค์ด Box์ด๊ณ  Box ๊ฐ€ ๋ชจ์—ฌ ํ•˜๋‚˜์˜ ๋ฉ‹์ง„ ์›น ์‚ฌ์ดํŠธ๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค.

 

๋ฐ”๋กœ ์ด๊ฒŒ ์˜ค๋Š˜ ๋ฐฐ์›Œ๋ณผ Box Modeling์ด๋‹ค.

 

๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ๋จผ์ € ์ด์•ผ๊ธฐ ํ•˜์ž๋ฉด Box Model์„ ์ž˜ ์ด์šฉํ•ด์•ผ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๊ณต๊ฐ„์— ๋ฐฐ์น˜ํ•˜๊ณ , ์กฐ์ ˆ, ๋‚˜์—ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

์ตœ์‹  CSS ๊ธฐ์ˆ ์—๋Š” Flexbox๋ผ๋Š” ๊ฒƒ์ด ์ƒ๊ฒผ๋‹ค.

 

Flexbox๋„ ์‚ฌ์‹ค์ƒ Box Model์— ์ƒ์‘ํ•˜๋Š” ๊ฐœ๋…์ด๋‹ˆ ๋‹ค์Œ์— ๋ฐฐ์›Œ๋ณผ Flexbox๋ฅผ ์œ„ํ•ด ์ด๋ฒˆ ์‹œ๊ฐ„์— Box model์ด ๋ฌด์—‡์ธ์ง€ ์ž˜ ์•Œ์•„๋ณด๊ณ  ๋„˜์–ด๊ฐ€๋„๋ก ํ•˜์ž.

Box Modeling

๋ชจ๋“  HTML ์š”์†Œ๋“ค์€ Box์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค.


Box Model ์€ HTML ์š”์†Œ์˜ Dimensions์™€ structure๋ฅผ ์œ„ํ•ด ์กด์žฌํ•œ๋‹ค.


์ด๋Ÿฐ HTML ์š”์†Œ๋Š” ์ด 4๊ฐœ์˜ Box๋ฅผ ๊ฐ–๊ณ ์žˆ๋Š”๋ฐ,

  • content
  • padding
  • border
  • margin

์šฐ๋ฆฌ๊ฐ€ ํฌ๋กฌ์˜ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ๋ณด๋ฉด

๋ชจ๋“  ์š”์†Œ๋“ค๋งˆ๋‹ค ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐ•์Šค๋ฅผ ๊ฐ–๊ฒŒ๋œ๋‹ค.

 

์šฐ๋ฆฌ๋Š” ์ด๋Ÿฐ Box๋ฅผ ์ž˜ ์ด์šฉํ•ด์•ผ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๋ฐฐ์น˜๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

Content Box

Content Box๋Š” ๋ฐ•์Šค ๋ชจ๋ธ์˜ ๊ฐ€์žฅ ์•ˆ์ชฝ ์†์„ฑ์œผ๋กœ Css์˜ Height์™€ Width์— ์˜ํ•ด์„œ ์ •์˜๋œ๋‹ค.


๊ธฐ๋ณธ์ ์œผ๋กœ Content Box๋Š” ์š”์†Œ ๋‚ด๋ถ€์— ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์— ์˜ํ•ด ์ •์˜๊ฐ€ ๋œ๋‹ค.


์ด ๋ง์€ ์ฆ‰, ๋‚ด์šฉ์— ๋”ฐ๋ผ ํ™•๋Œ€ ๋˜๋Š” ์ถ•์†Œ๋œ๋‹ค๋Š” ๋œป์ด๋‹ค.

์ด๋ ‡๊ฒŒ ๋‘ ๊ฐœ์˜ span ํƒœ๊ทธ๊ฐ€ ์žˆ์„ ๋•Œ Content ์˜์—ญ์€ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚ด์šฉ๋ฌผ์— ๋”ฐ๋ผ ํฌ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค.

 

See the Pen JjXgvzo by onigiri (@dhslrl321) on CodePen.

Border Box

border ์˜์—ญ์€ ๋ง ๊ทธ๋Œ€๋กœ Box์˜ ๊ฒฝ๊ณ„(Border)์ด๋‹ค.

border์—๋„ ๋‹ค์–‘ํ•œ ์†์„ฑ์ด ์กด์žฌํ•˜์ง€๋งŒ border ์†์„ฑ์€ ๋งค์šฐ๋งค์šฐ๋งค์šฐ ์ด์ƒํ•˜๊ณ  ์ด์˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๋ถ€๋ถ„ ํ•œ ๋‘๊ฐ€์ง€ ์†์„ฑ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค.

๋Œ€๋ถ€๋ถ„ solid๋งŒ ์‚ฌ์šฉํ•˜๊ณ  solid๋ฅผ ์‚ฌ์šฉํ•  ์ผ๋„ ๊ฑฐ์˜ ์—†๋‹ค.

 

๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๊ธฐ์— border์€ Padding๊ณผ margin์„ ๊ตฌ๋ถ„์ง“๋Š” ๊ฒƒ์ด๋ผ๊ณ ๋งŒ ์ผ๋‹จ ์•Œ์•„๋‘๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

Padding Box

Padding์€ Content์˜ ๋ฐ”๋กœ ๋ฐ–์˜ Box๋กœ

Margin ์†์„ฑ๊ณผ ๋Œ€์กฐ๋˜๋Š” ๊ฐœ๋…์ด๋‹ค.

 

Padding์€ border ๋‚ด๋ถ€์™€ content ์‚ฌ์ด์˜ ์—ฌ๋ฐฑ์„ ๋œปํ•œ๋‹ค.


์œ„์˜ ์ฝ”๋“œ์—์„œ padding์„ ์กฐ๊ธˆ ์ค˜๋ณด์ž.

 

See the Pen JjXgvzo by onigiri (@dhslrl321) on CodePen.

Margin Box

margin์€ border์™ธ๋ถ€์˜ ์—ฌ๋ฐฑ์„ ๋œปํ•œ๋‹ค.

 

์œ„์—์„œ ์ผ๋˜ ์ฝ”๋“œ์— margin์„ ์กฐ๊ธˆ ์ถ”๊ฐ€ํ•ด๋ณด์ž.

 

See the Pen JjXgvzo by onigiri (@dhslrl321) on CodePen.

๋Œ“๊ธ€