-
[CSS] ์ด๋ฏธ์ง๋ฅผ ์ปจํ ์ด๋์ ๋ง๊ฒ ์ฌ์ด์ฆ ํต์ผํ๋ ๋ฐฉ๋ฒ (object-fit, background ..)Coding 2023. 7. 12. 19:28๋ฐ์ํ
Intro
๋ณด์ฌ์ฃผ๊ณ ์ถ์ ์ด๋ฏธ์ง ์ฌ์ด์ฆ๋ ์ ํด์ ธ ์๋๋ฐ,
์ฌ๋ผ์ค๋ ์ด๋ฏธ์ง ์ฌ์ด์ฆ๋ ์ ๊ฐ๊ฐ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์ฌ์ฉํด ๋ณธ ์ด๋ฏธ์ง ์ ๋ ฌ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด ๋ดค์ต๋๋ค.
1. background-size ์ฌ์ฉ
์ ๊ธฐ์ค์์ ์ ์ผ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ๋๋ค.
๊ผญ img ํ๊ทธ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๋ฉด,
์ฌ๋ฌ ๋ธ๋ผ์ฐ์ ๋์์๋ ๋ฌธ์ ์์ด ์ฌ์ฉ๊ฐ๋ฅํ ๋ฐฉ๋ฒ์ ๋๋ค.
์ด๋ฏธ์ง๋ ๋น์จ์ ์ ์งํ๊ณ ์ปจํ ์ด๋์ ๋ง๊ฒ ์ด๋ฏธ์ง๋ฅผ ๊ฝ์ฑ์ด ํ ๋์น๋ ๋ถ๋ถ์ ์๋ผ๋ ๋๋ค.
๋์น๋ ์ด๋ฏธ์ง์ ์ํ์ข์ฐ๋ฅผ ๊ท ์ผํ๊ฒ ์๋ผ๋ด๊ณ ์ด๋ฏธ์ง์ ๊ฐ์ด๋ฐ ๋ถ๋ถ๋ง ๋ณด์ด๊ฒ ํ๊ณ ์ถ๋ค๋ฉด,
background-position: center center;
์ ์์ฑ์ ๊ผญ ๋ฃ์ด์ผํฉ๋๋ค.
2. image์ position: absolute ์ฌ์ฉ
bootstrap์์ ratio helper์ ๋น์ทํ ๋ฐฉ๋ฒ์ ๋๋ค.
์ปจํ ์ด๋ ์ฌ์ด์ฆ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ด๋ฏธ์ง๋ฅผ absolute๋ก ๋์ฐ๊ณ ์ปจํ ์ด๋ ๋ฐ์ผ๋ก ๋๊ฐ๋ ๋ถ๋ถ์ ์๋ผ๋ ๋๋ค.
์๋ ค๋๊ฐ๋ ๋ถ๋ถ์ด ์๊ฒ ์ง๋ง
์ด๋ฏธ์ง๊ฐ ์๋๋๋ผ๋ video, iframe ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅํ๊ณ ,
๋ธ๋ผ์ฐ์ ๋์์๋ ๋ฌธ์ ๊ฐ ์์ด์ ๋ฐ์คํฌํฑ ํ๋ฉด ์์ ์ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
3. object-fit ์ฌ์ฉ
์์ด ๊ทธ๋๋ก์ ๋๋ค.
object(image๋ video)์ ํฌ๊ธฐ๋ฅผ ์ด๋ค ๋ฐฉ์์ผ๋ก ๋ง์ถ ๊ฒ์ธ์ง ์ค์ ํ ์ ์์ต๋๋ค.
contain object๊ฐ ๊ฐ๋ก์ธ๋ก๋น์จ์ ์ ์งํ๋ฉด์ ์ปจํ ์ด๋ ๋ฐ์ค์ ๋ง๊ฒ ํฌ๊ธฐ๋ฅผ ์ค์ ๋๋ค. cover object์ ๋น์จ์ ์ ์งํ๋ฉด์, ์ปจํ ์ด๋์ ๊ฐ๋์ฐจ๊ฒ ๋ณด์ ๋๋ค. ๋์น๋ ๋ถ๋ถ์ ์๋ ค๋๊ฐ๋๋ค. fill (default) ์ ์ํ ์ฌ์ด์ฆ์ ๋ง๊ฒ object๊ฐ ๋์ด๋ฉ๋๋ค. none ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ์ง ์์ต๋๋ค. scale-down none๊ณผ contain ์ค ํฌ๊ธฐ๊ฐ ๋ ์์์ง๋ ๊ฐ์ ์ ํํฉ๋๋ค. ๊ฒ์ ๊ฐ์ธ๊ณ ์๋ ์ปจํ ์ด๋๋ฅผ ๊ธฐ์ค์ผ๋ก object์ ํฌ๊ธฐ๋ฅผ ๋ง์ถ์๋ ์๊ณ ,
object์ ์ฌ์ด์ฆ๋ฅผ ์ง์ ํด์ ๊ทธ ์ฌ์ด์ฆ ๊ธฐ์ค์ผ๋ก ๋ง์ถ ์ ์์ต๋๋ค.
img { width: 150px; height: 100px; object-fit: cover; }
๊ฐํธํ๊ฒ ์ฌ์ฉํ ์ ์์ง๋ง,
IE๋ ์ง์ํ์ง ์์์ ์ ๋ ์ฃผ๋ก ๋ชจ๋ฐ์ผ ํ๋ฉด์์ ์ฌ์ฉํฉ๋๋ค.
๋ฐ์ํ'Coding' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SCSS] ๋ด ๊ธฐ์ค ์ ์ฉํ๊ฒ ์ฌ์ฉํ๊ณ ์๋ scss mixin ๋ชจ์ (0) 2023.07.14 [CSS] aspect-ratio ์์ฑ์ผ๋ก object ๋น์จ ๋ง์ถ๊ธฐ (+ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง) (0) 2023.07.13 [CSS, JS] ๊ฝ์ด ํ๋ค๊ฑฐ๋ฆฌ๋ ํจ๊ณผ ๊ตฌํํ๊ธฐ (0) 2023.05.19 [CSS] Hover ํ๋ ํ์ ๋ค(siblings) ์คํ์ผ ์ ์ฉ (0) 2023.05.12 [Javascript] ์นด์ดํธ๋ค์ด ๋ง๋ค๊ธฐ (0) 2023.02.15