-
[CSS] aspect-ratio ์์ฑ์ผ๋ก object ๋น์จ ๋ง์ถ๊ธฐ (+ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง)Coding 2023. 7. 13. 11:18๋ฐ์ํ
Intro
๊ฐ๋ก์ธ๋ก ๋น์จ์ ๋ค๋ฃฐ ์ ์๋ aspect-ratio ์์ฑ์ ๋งค์ฐ ์ ์ฉํ ๊ธฐ๋ฅ ์ค ํ๋์ ๋๋ค.
img, video, iframe, div ๋ฑ ๋ชจ๋ ํ๊ทธ์ ์ฌ์ฉ๊ฐ๋ฅํฉ๋๋ค.
์ด ์ ์ฉํ aspect-ratio ์์ฑ์ ์์ธํ ์์๋ณด๋ ค๊ณ ํฉ๋๋ค.
์ฌ์ฉ๋ฐฉ๋ฒ
์ฌ์ฉ๋ฐฉ๋ฒ์ ๊ฐ๋จํฉ๋๋ค.
.element { aspect-ratio: 16 / 9; }
aspect-ratio ๋ค์ ์ํ๋ ๋น์จ์ ์ ์ด์ฃผ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
๋ด๊ฐ ์ํ๋ ๋น์จ์ element์ ์ ์ํ๊ณ ๋ด๋ถ object์ object-fit: cover๋ฅผ ๋ฃ์ด์ฃผ๋ฉด
object๊ฐ ๋น์จ์ ๋ง๊ฒ ๊ฝ ์ฐจ๊ฒ ๋ณด์ฌ ์ค ์ ์์ต๋๋ค.
.element { aspect-ratio: 16/9; overflow: hidden; } .element img { width: 100%; height: 100%; object-fit: cover; }
object-fit: cover์ ๋ํ ์์ธํ ๋ด์ฉ์ ์๋ ๊ฒ์๋ฌผ์์ ํ์ธํ ์ ์์ต๋๋ค.
[CSS] ์ด๋ฏธ์ง๋ฅผ ์ปจํ ์ด๋์ ๋ง๊ฒ ์ฌ์ด์ฆ ํต์ผํ๋ ๋ฐฉ๋ฒ (object-fit, background ..)
Intro ๋ณด์ฌ์ฃผ๊ณ ์ถ์ ์ด๋ฏธ์ง ์ฌ์ด์ฆ๋ ์ ํด์ ธ ์๋๋ฐ, ์ฌ๋ผ์ค๋ ์ด๋ฏธ์ง ์ฌ์ด์ฆ๋ ์ ๊ฐ๊ฐ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ฌ์ฉํด ๋ณธ ์ด๋ฏธ์ง ์ ๋ ฌ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด ๋ดค์ต๋๋ค. 1. background-size ์ฌ์ฉ ์ ๊ธฐ์ค์์ ์
blog.eomgenie.com
์์ฝ๊ฒ๋ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ์ด ์์ฑ์ ์ง์ํ์ง๋ ์์ต๋๋ค. (ex) IE
์์ธํ ํธํ ๊ฐ๋ฅ ๋ธ๋ผ์ฐ์ ๋ caniuse์์ ํ์ธํ ์ ์์ต๋๋ค.
+ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ํธํ๊ฐ๋ฅํ ๋น์จ ์ ์ฉ๋ฐฉ๋ฒ
< HTML >
<div class="ratio ratio-16x9"> <div class="object"></div> </div>
< CSS >
.ratio { position: relative; width: 100%; } .ratio::before { display: block; padding-top: var(--bs-aspect-ratio); content: ""; } .ratio > * { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } .ratio-1x1 { --tt-aspect-ratio: 100%; } .ratio-4x3 { --tt-aspect-ratio: 75%; } .ratio-3x4 { --tt-aspect-ratio: 132%; } .ratio-16x9 { --tt-aspect-ratio: 56.25%; } .ratio-9x16 { --tt-aspect-ratio: 156.25%; }
ratio ์ปจํ ์ด๋์ ์์ ::before๋ผ๋ ๊ฐ์ ์๋ฆฌ๋จผํธ๋ฅผ ์ถ๊ฐํด padding์ผ๋ก ๋น ์์ญ์ ๋ง๋ค์ด์ฃผ๊ณ ,
ratio ๋ด๋ถ์ object๋ค์ ์ ๋ถ absolute๋ก ๋์์ ๊ฝ ์ฐจ๊ฒ ๋ฐฐ์น์์ผ ์ค๋๋ค.
๋น์จ์ ratio-1x1, ratio-4x3 ๋ฑ.. ๋๋ธ ํด๋์ค๋ฅผ ์ถ๊ฐํด ์ ์ํ ์ ์์ต๋๋ค.
* ์์ธํ ๋ด์ฉ์ bootstrap์ ratio helper ์์ญ์์ ํ์ธํ ์ ์์ต๋๋ค.
Ratios
Use generated pseudo elements to make an element maintain the aspect ratio of your choosing. Perfect for responsively handling video or slideshow embeds based on the width of the parent.
getbootstrap.com
๋ฐ์ํ'Coding' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ