๐Ÿ“ŒLanguage/HTML & CSS

css ์†์„ฑ ๊ณต๋ถ€, width, height, boxmodel

hellohailie 2022. 4. 19. 17:58

 

width

width ์†์„ฑ์€ ์š”์†Œ์˜ ๊ฐ€๋กœ ํฌ๊ธฐ๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์†์„ฑ์ด๊ณ , ์ •ํ™•ํžˆ๋Š” content ์˜์—ญ์˜ ๋„ˆ๋น„๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๊ฐ™์ง€๋งŒ, ์š”์†Œ์˜ ์ข…๋ฅ˜๋‚˜ ํŠน์ง•์— ๋”ฐ๋ผ์„œ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๊ธฐ๋„ ํ•œ๋‹ค. 

 

 

์š”์†Œ์˜ ๊ฐ€๋กœ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜๋Š” width ์†์„ฑ์€ ์ธ๋ผ์ธ ๋ ˆ๋ฒจ ์š”์†Œ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ์š”์†Œ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋ธ”๋ก&์ธ๋ผ์ธ ๊ฐ•์˜์—์„œ ๋‹ค๋ฃฌ ๋ธ”๋ก ๋ ˆ๋ฒจ ์š”์†Œ์™€ ์ธ๋ผ์ธ ๋ ˆ๋ฒจ ์š”์†Œ์˜ ํŠน์ง•์„ ๋˜์งš์–ด๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. 

 

width ์†์„ฑ

      ๊ธฐ๋ณธ ๊ฐ’ : 0

 

 

< ์†์„ฑ ๊ฐ’ >

auto ๋ธŒ๋ผ์šฐ์ €์— ์˜ํ•ด ์ž๋™์œผ๋กœ ๊ณ„์‚ฐํ•˜์—ฌ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. * ์š”์†Œ์˜ ๋ ˆ๋ฒจ ๊ธฐ๋ณธ ํŠน์„ฑ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.
length ๊ณ ์ •๊ฐ’์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. (ex. px, em ....)
percent ๋ถ€๋ชจ ์š”์†Œ์˜ width์— ์ƒ๋Œ€์ ์ธ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

width๋Š” content ์˜์—ญ์˜ ๋„ˆ๋น„๋ฅผ ์ œ์–ดํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ด๋•Œ auto๊ฐ€ ์•„๋‹Œ ํŠน์ •ํ•œ ๊ฐ’์„ ์ง€์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด,

๊ทธ ํฌ๊ธฐ๋Š” box model ์˜์—ญ์—์„œ margin ์˜์—ญ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์˜์—ญ์— ๋Œ€ํ•ด ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. (content, padding, border) 

์˜ˆ๋ฅผ ๋“ค์–ด,

 

<div class="box"> box </div>
 
.box {
  width: 100px;
  padding: 20px;
  border: 10px solid black;
}

์œ„์™€ ๊ฐ™์ด ์„ ์–ธ๋˜์–ด์žˆ๋‹ค๋ฉด ์š”์†Œ์˜ ์ด ๊ฐ€๋กœ ํฌ๊ธฐ๋Š” 160px๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๋ถ„๋ช… width: 100px๋ฅผ ์ ์šฉํ–ˆ๋Š”๋ฐ ์–ด๋–ป๊ฒŒ 160px๊ฐ€ ๋œ ๊ฑธ๊นŒ์š”?

์•ž์„  ์„ค๋ช…์—์„œ ์–ธ๊ธ‰ํ•œ ๋ฐ”์™€ ๊ฐ™์ด width๋Š” padding, border ์˜์—ญ์— ๋Œ€ํ•ด์„œ ์˜ํ–ฅ์„ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

 

์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด,

100px content + ( 20px * 2) padding + ( 10px * 2 ) border = 160px ๊ฐ€ ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.   

 

 

 

๋˜ํ•œ, width๋Š” %๋ฅผ ์ด์šฉํ•ด์„œ๋„ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

<div class="parent">
  <div class="child">
    child
  </div>
</div>
 
.parent {
  width: 300px;
  border: 20px solid red;
}
.child {
  width: 50%;
  padding: 20px;
  border: 10px solid black;
}

 

 

์ •๋‹ต์€ 210px ์ž…๋‹ˆ๋‹ค.

์šฐ์„ , padding (20px * 2) + border (10px * 2) = 60px ์ž…๋‹ˆ๋‹ค.

210px - 60px = 150px ์ด๋ฉฐ, 150px์€ ๋ถ€๋ชจ์˜ width๊ฐ€ 300px์ด๋ฏ€๋กœ 300px์˜ 50%์ธ 150px์ด width๊ฐ’์œผ๋กœ ๊ฒฐ์ •๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ %๊ฐ’์ผ ๋•Œ์—๋Š” ๋ถ€๋ชจ์˜ width๊ฐ’์— ๋Œ€ํ•ด์„œ ๊ณ„์‚ฐ๋˜์–ด์ง€๋Š”๋ฐ, ์ด๋•Œ ๋ถ€๋ชจ์˜ width๋Š” content ์˜์—ญ์˜ ํฌ๊ธฐ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๋ถ€๋ชจ์˜ padding๊ณผ border๊นŒ์ง€ ๋”ํ•ด์ง„ ์š”์†Œ์˜ ์ „์ฒด ํฌ๊ธฐ๊ฐ€ ์•„๋‹Œ, content ์˜์—ญ์˜ ํฌ๊ธฐ๊ฐ€ ๊ธฐ์ค€์ด๋ผ๋Š” ๊ฒƒ์„ ๊ธฐ์–ต!

 

 


๋ถ€๋ชจ๊ฐ€ ์ธ๋ผ์ธ ๋ ˆ๋ฒจ ์š”์†Œ์ผ ๋•Œ, ์ž์‹(๋ธ”๋ก ์š”์†Œ)์ด width ๊ฐ’์— %๋ฅผ ๊ฐ€์ง€๋ฉด, ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ธ”๋ก ๋ ˆ๋ฒจ์ธ ์กฐ์ƒ์˜ width๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์ผ ์ตœ์ƒ๋‹จ๊นŒ์ง€ ๋ธ”๋ก ๋ ˆ๋ฒจ ์š”์†Œ๊ฐ€ ์—†์œผ๋ฉด body๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ณ„์‚ฐ๋œ๋‹ค. 

 

 

See the Pen Untitled by sunah (@sunah) on CodePen.

 

 


 

height

 

height๋Š” ์š”์†Œ์˜ ์„ธ๋กœ ํฌ๊ธฐ๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์†์„ฑ์ด๋‹ค. width์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ •ํ™•ํžˆ๋Š” content ์˜์—ญ์˜ ๋†’์ด๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” width์˜ ๋™์ž‘ ๋ฐฉ์‹๊ณผ ๊ฐ™๊ฒŒ ๋™์ž‘ํ•˜์ง€๋งŒ, % ๊ฐ’์„ ๊ฐ€์กŒ์„ ๋•Œ์˜ ๋™์ž‘ ๋ฐฉ์‹์ด ์กฐ๊ธˆ ๋‹ค๋ฅด๋‹ค.

 

 

height ์†์„ฑ

      ๊ธฐ๋ณธ ๊ฐ’ : 0

 

 

 

< ์†์„ฑ ๊ฐ’ > 

auto ๋ธŒ๋ผ์šฐ์ € ์ž๋™์œผ๋กœ ๊ณ„์‚ฐํ•˜์—ฌ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. * ๊ธฐ๋ณธ์ ์œผ๋กœ ์ปจํ…์ธ  ์˜์—ญ์˜ ๋‚ด์šฉ๋งŒํผ ๋†’์ด๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
length ๊ณ ์ •๊ฐ’์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. (ex. px, em ....)
percent ๋ถ€๋ชจ ์š”์†Œ์˜ height์— ์ƒ๋Œ€์ ์ธ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. * ๋‹จ, ๋ถ€๋ชจ ์š”์†Œ๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ height ๊ฐ’์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

height๋Š” content ์˜์—ญ์˜ ๋†’์ด๋ฅผ ์ œ์–ดํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ด๋•Œ auto๊ฐ€ ์•„๋‹Œ ํŠน์ •ํ•œ ๊ฐ’์„ ์ง€์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด,

width ์†์„ฑ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ box model ์˜์—ญ์—์„œ margin ์˜์—ญ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์˜์—ญ์— ๋Œ€ํ•ด ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

 

 


%๋ฅผ ์ด์šฉํ•ด์„œ๋„ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•ด๋ณด๊ธฐ

 

<div class="parent">
  <div class="child">
    child
  </div>
</div>
 
.parent {
  width: 200px;
  border: 10px solid black;
}
.child {
  height: 50%;
  background: red;
}

 

 

์‹ค์ œ๋กœ ํ™•์ธํ•ด๋ณด๋ฉด, height: auto์ผ ๋•Œ์™€ height: 50%์ผ ๋•Œ ์ฐจ์ด๊ฐ€ ์—†๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์™œ ๋‘ ๊ฐ’์˜ ์ฐจ์ด๊ฐ€ ์—†๋Š” ๊ฑธ๊นŒ์š”?

MDN์—์„œ height ์†์„ฑ์— percent value์— ๋Œ€ํ•œ ์„ค๋ช…์„ ๋ณด๋ฉด

"Containing Block์˜ ๋†’์ด์— ๋Œ€ํ•œ ๋ฐฑ๋ถ„์œจ๋กœ ๋†’์ด๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค."๊ณ  ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” Containing Block์€ ๋ถ€๋ชจ๋ฅผ ์˜๋ฏธํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ฆ‰, ํ˜„์žฌ ์œ„์˜ ์ฝ”๋“œ์—์„œ๋Š” ๋ถ€๋ชจ๊ฐ€ ๋ช…์‹œ์ ์ธ ๋†’์ด ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—

์ž์‹์˜ ๋†’์ด๋ฅผ %๊ฐ’์œผ๋กœ ์ง€์ •ํ•ด์ค˜๋„ ์ ์šฉ๋˜์ง€ ์•Š์•˜๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค.