๐ŸŽจ object-fit์œผ๋กœ ์ด๋ฏธ์ง€ ํฌ๊ธฐ ์กฐ์ ˆํ•˜๊ธฐ

๊น€๋ฏผ์ค€ยท2024๋…„ 8์›” 29์ผ

CSS

๋ชฉ๋ก ๋ณด๊ธฐ
2/4

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋‹ค์–‘ํ•œ ์ด๋ฏธ์ง€๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ map์— ํ™œ์šฉํ•ด์„œ ๋ณด์—ฌ์ฃผ๋Š” ์ž‘์—…์„ ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
ํ•ด๋‹น ์ž‘์—…์„ ์ง„ํ–‰ํ•  ๋•Œ, ๊ฐ๊ฐ ์ด๋ฏธ์ง€ ํฌ๊ธฐ๊ฐ€ ์ „๋ถ€ ๋‹ค๋ฅด๊ณ , ๋น„์œจ๋„ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—
width ์™€ height๋ฅผ ๊ฐ•์ œ๋กœ ์„ค์ •ํ•˜์˜€์„๋•Œ ๋น„์œจ์ด ๊นจ์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ object-fit ์†์„ฑ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค

๐Ÿ‘‰ ์ด๋ฏธ์ง€์˜ ์›๋ž˜ ํฌ๊ธฐ

์ด๋ฏธ์ง€๋Š” ์•„๋ฌด๊ฒƒ๋„ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ณธ๋ž˜์˜ ํฌ๊ธฐ,๋น„์œจ์„ ๊ทธ๋Œ€๋กœ ๋ธŒ๋ผ์šฐ์ €์— ๋ณด์—ฌ์ค๋‹ˆ๋‹ค

<!-- ๋ณธ๋ž˜ ๋„ˆ๋น„ 100px / ๋ณธ๋ž˜ ๋†’์ด 200px -->
<img src="https://dummyimage.com/100x200.png" />

๐Ÿ“Œ ์ž๋™ ์„ค์ •

์ด ๋•Œ ์›๋ž˜ ์˜๋„ ํฌ๊ธฐ์™€ ๋‹ค๋ฅผ ๊ฒฝ์šฐ, width ์™€ height ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ ์„ค์ •ํ•˜๋ฉด ๋น„์œจ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์ž๋™์œผ๋กœ ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•ด์ค๋‹ˆ๋‹ค

<!-- ๋„ˆ๋น„๋ฅผ 2๋ฐฐ์ธ 200px๋กœ ์ง€์ •ํ•˜๋ฉด ๋†’์ด๋„ 2๋ฐฐ์ธ 400px ์ž๋™ ์ฆ๊ฐ€ -->
<img src="https://dummyimage.com/100x200.png" width="200px" />

<!-- ๋†’์ด๋ฅผ 0.5๋ฐฐ์ธ 100px๋กœ ์ง€์ •ํ•˜๋ฉด ๋„ˆ๋น„๋„ 0.5๋ฐฐ์ธ 50px๋กœ ์ž๋™ ์ถ•์†Œ -->
<img src="https://dummyimage.com/100x200.png" height="100px" />

๐Ÿ“Œ ๊ฐ•์ œ ์„ค์ •

๋งŒ์•ฝ width ์™€ height ๋‘ ๊ฐ’ ๋ชจ๋‘๋ฅผ ์„ค์ •ํ•˜๋ฉด,
๊ฐ€๋กœ์„ธ๋กœ ๋น„์œจ์ด ๋™์ผํ•œ ๊ฒฝ์šฐ๋Š” ๋ฌธ์ œ ์—†์ง€๋งŒ, ๋น„์œจ์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ ์ฐŒ๊ทธ๋Ÿฌ์ ธ ๋ณด์ด๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ˜„์ƒ์ด object-fit ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์˜ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

<img src="https://dummyimage.com/150x150.png" width="200px" height="200px" />
<img src="https://dummyimage.com/300x100.png" width="200px" height="200px" />
<img src="https://dummyimage.com/100x300.png" width="200px" height="200px" />

โšก object-fit: cover

์ด๋ฏธ์ง€์˜ ์›๋ž˜ ๋น„์œจ์„ ์ง€ํ‚ฌ ๋•Œ ์‚ฌ์šฉ (๋น„์œจ๋งŒ ๋งž์ถค, ์ž˜๋ฆฌ๋Š” ์œ„ํ—˜ ์กด์žฌ)

์ด๋ฏธ์ง€์˜ ์›๋ž˜ ๋น„์œจ์„ ์ง€ํ‚ค๋ ค๋ฉด, ์–ด์ฉ”์ˆ˜ ์—†์ด ํฌ๊ธฐํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด ์ƒ๊น๋‹ˆ๋‹ค.
๊ฐ€๋กœ๋กœ ๊ธด ๋น„์œจ์˜ ์ด๋ฏธ์ง€๋ผ๋ฉด, ์ขŒ์šฐ๊ฐ€ ์งค๋ฆฌ๊ฒŒ ๋˜๊ณ 
์„ธ๋กœ๋กœ ๊ธด ๋น„์œจ์˜ ์ด๋ฏธ์ง€๋ผ๋ฉด, ์ƒํ•˜๊ฐ€ ์งค๋ฆฌ๋Š” ๊ฒƒ์„ ๊ฐ์ˆ˜ํ•ด์•ผํ•˜์ฃ .

img {
  object-fit: cover;
}

object-fit: cover ์˜ต์…˜์€ ์ธ๋„ค์ผ์ด๋‚˜, ๋ฏธ๋ฆฌ๋ณด๊ธฐ, ์—ฌ๋Ÿฌ ์ด๋ฏธ์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ทธ๋ฆฌ๋“œ ํ˜•์‹์— ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ์ ํŠธ์—์„œ ์ œ๊ฐ€ ๋งก์€ ๋ถ€๋ถ„์˜ ์ž‘์—…์— ์ ํ•ฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—, cover๋ฅผ ์ฑ„ํƒํ•ด์„œ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

โšก object-fit: contain

์ด๋ฏธ์ง€๊ฐ€ ๊นจ์ง€๊ธฐ ์•Š๊ณ  ์›๋ž˜์˜ ๋น„์œจ์„ ๊ทธ๋Œ€๋กœ ์œ ์ง€์‹œํ‚ค๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

ํ•ด๋‹น ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋น„์œจ์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜์ง€๋งŒ, ์ด๋ฏธ์ง€๊ฐ€ ์ž‘์•„์ ธ์„œ ์—ฌ๋ฐฑ์ด ์ƒ๊ธฐ๋Š” ํ˜„์ƒ์„ ๊ฐ์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

img {
  object-fit: contain;
}

ํ•ด๋‹น ์˜ต์…˜์ด ์ ์šฉ๋œ ์ƒํƒœ์—์„œ, ์ด๋ฏธ์ง€์— ์ค€ width ์™€ height์ด ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด
๊ฐ€๋กœ๋กœ ๊ธด ์ด๋ฏธ์ง€๋Š” ์ƒํ•˜์—ฌ๋ฐฑ์ด,
์„ธ๋กœ๋กœ ๊ธด ์ด๋ฏธ์ง€๋Š” ์ขŒ์šฐ์—ฌ๋ฐฑ์ด ์ƒ๊น๋‹ˆ๋‹ค

object-fit: contain ์˜ต์…˜์€ ์ด๋ฏธ์ง€ ์›๋ณธ์˜ ๋น„์œจ ๊ทธ๋Œ€๋กœ๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์ด๋ฏธ์ง€ ์•ˆ์— ์ค‘์š”ํ•œ ํ…์ŠคํŠธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

โšก object-fit: none

width ์™€ height๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ์ด๋ฏธ์ง€ ์›๋ณธ์˜ ํฌ๊ธฐ๋Œ€๋กœ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

img {
  object-fit: none;
}

์ด ์˜ต์…˜์€ object-fit: contain ์˜ต์…˜๊ณผ ์œ ์‚ฌํ•ด๋ณด์ด์ง€๋งŒ,
์ด๋ฏธ์ง€ ์ „์ฒด๊ฐ€ ๋น„์œจ์— ๋งž์ง€ ์•Š์„๋•Œ, ์ฃผ์–ด์ง„ ์˜์—ญ์— ๋„ฃ๊ธฐ ์œ„ํ•ด ์ž„์˜๋กœ ์ด๋ฏธ์ง€์˜ ๋„ˆ๋น„๋‚˜ ๋†’์ด๋ฅผ ์กฐ์ ˆํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์•„๋ž˜์—์„œ ์ฒซ ๋ฒˆ์งธ ์ด๋ฏธ์ง€ ์ฃผ๋ณ€์œผ๋กœ๋Š” 25px์˜ ๋นˆ ๊ณต๊ฐ„์ด ์ƒ๊ธฐ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ์š”. width ์†์„ฑ๊ณผ height ์†์„ฑ์ด ๋ชจ๋‘ 200px๋กœ ์ง€์ •๋˜์–ด ์žˆ๊ณ  ์—ฌ๊ธฐ์„œ ์ด๋ฏธ์ง€์˜ ๋ณธ๋ž˜ ๊ฐ€๋กœ ์„ธ๋กœ ๊ธธ์ด์ธ 150px์„ ๋นผ๋ฉด 50px์ด ๋‚จ์œผ๋ฉฐ ์ด๊ฒƒ์„ ์ƒํ•˜ ์ขŒ์šฐ ๊ณต๋ฐฑ์ด ์ด ๋“ฑ๋ถ„ํ•˜์—ฌ ๊ฐ€์ ธ๊ฐ€๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ์ด๋ฏธ์ง€์˜ ๋†’์ด๋Š” ๋ณธ๋ž˜ ๋†’์ด์ธ 100px๋กœ ํ‘œ์‹œ๋˜๊ณ  ์ขŒ์šฐ๋กœ๋Š” 50px ์”ฉ ์ด๋ฏธ์ง€๊ฐ€ ์งค๋ ค์„œ ๋ณด์ด์ง€ ์•Š๊ฒŒ ๋˜๋Š”๋ฐ์š”. ์ด๋ฏธ์ง€์˜ ๋ณธ๋ž˜ ๋„ˆ๋น„๊ฐ€ 300px์ธ๋ฐ ์—ฌ๊ธฐ์„œ width ์†์„ฑ ๊ฐ’์œผ๋กœ ์ง€์ •๋œ 200px๋ฅผ ๋นผ๋ฉด 100px์ด ๋‚จ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์„ธ ๋ฒˆ์งธ ์ด๋ฏธ์ง€์˜ ๊ฒฝ์šฐ์—๋Š” ์ด๋ฏธ์ง€์˜ ๋ณธ๋ž˜ ๋†’์ด๊ฐ€ height ์†์„ฑ ๊ฐ’๋ณด๋‹ค 100px์ด ํฌ๊ธฐ ๋•Œ๋ฌธ์— ์ƒํ•˜๋กœ 50px ์”ฉ ์ด๋ฏธ์ง€๊ฐ€ ์งค๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ •๋ฆฌํ•˜์ž

์ •ํ•ด์ง„ ์˜์—ญ์— ์ด๋ฏธ์ง€๋ฅผ ๋น„์œจ ๊ทธ๋Œ€๋กœ ๋„ฃ๊ณ  ์‹ถ๋‹ค + ํ™•๋Œ€ ok? ๐Ÿ‘‰ object-fit: cover
์ •ํ•ด์ง„ ์˜์—ญ์— ์ด๋ฏธ์ง€๋ฅผ ๋น„์œจ ๊ทธ๋Œ€๋กœ ๋„ฃ๊ณ  ์‹ถ๋‹ค + ์ถ•์†Œ ok? ๐Ÿ‘‰ object-fit: contain

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