๋ฐ์ํ
์กฐ๊ฑด !
๋ถ๋ชจ ๋์ด์ ๋์ด์ ๋ง๊ฒ ์ด๋ฏธ์ง๊ฐ ๊ฐ์ด๋ฐ ์ ๋ ฌ.
<img>
ํ๊ทธ ์ธ ๋ ์ด๋ฏธ์ง ๊ฐ์ด๋ฐ ์ ๋ ฌ.position: absolute
margin
transform
object-fit
display: flex
background-image
์ธ ๋ ์ด๋ฏธ์ง ๊ฐ์ด๋ฐ ์ ๋ ฌ.background-size
1. <img>
ํ๊ทธ
# ๊ธฐ๋ณธ html / css
<div class="absolute-img">
<img src="https://cdn.pixabay.com/photo/2016/03/26/13/09/cup-of-coffee-1280537_1280.jpg">
</div>
html body { margin: 0; padding: 0; box-sizing: border-box; }
/* ๊ณตํต */
.aboslute-img {
width: 300px;
height: 300px;
position: relative;
margin: auto;
overflow: hidden;
border: 1px solid red;
}
.absoluteimg > img {
/* ์ด๋ฏธ์ง๋ฅผ ๊ฐ๋กํญ์ ๋ง์ถ ๋ width: 100% */
width: 100%;
/* ์ด๋ฏธ์ง๋ฅผ ์ธ๋กํญ์ ๋ง์ถ ๋ height: 100% */
height: 100%;
}
1-1. position: absoltue
1-1-1. margin
<div class="absolute-img">
<img class="absolute-img-margin" src="https://cdn.pixabay.com/photo/2016/03/26/13/09/cup-of-coffee-1280537_1280.jpg">
</div>
.absolute-img-margin {
height: 100%;
position: absolute;
left: -50%;
margin-left: 25%;
}
1-1-2. transform
<div class="absolute-img">
<img class="absolute-img-trans" src="https://cdn.pixabay.com/photo/2016/03/26/13/09/cup-of-coffee-1280537_1280.jpg">
</div>
.absolute-img-trans {
position: absolute;
height: 100%;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
์ ๋ฆฌ.
IE์์ object-fit์ด ์ง์๋์ง ์์ ๋ absolute ์ฌ์ฉ.
(๋จ, transform์ ์ง์ํ์ง ์๋ IE8์ดํ์์๋ margin-top, margin-left๋ก ์์๊ฐ์ ์ค๋ค.)
1- 2. object-fit
<img>
๋<video>
๊ฐ์ ์ค๋ธ์ ํธ์ ์ฌ์ด์ฆ๋ฅผ ์ปจํ ์ด๋ ํฌ๊ธฐ์ ๋ง์ถฐ ์กฐ์ ๊ฐ๋ฅ.- ๋์ด์ ๋์ด๊ฐ์ ์ ๋ ฅํ๊ณ object-fit ์์ฑ๋ง ์ง์ ํ๋ฉด ๋๋ค.
value | ์ค๋ช |
---|---|
fill | ๊ธฐ๋ณธ๊ฐ. ์ฃผ์ด์ง ๋๋น์ ๋์ด์ ๋ง๊ฒ ์กฐ์ . ์ด๋ฏธ์ง์ ๊ฐ๋ก์ธ๋ก ๋น์จ ์ ์ง์๋จ. |
contain | ๊ฐ๋ก์ธ๋ก ๋น์จ ์ ์งํ ์ฑ ์ฌ์ด์ฆ ์กฐ์ ๊ฐ๋ฅ. ์ด๋ฏธ์ง์ ์ปจํ ์ด๋ ๊ฐ์ ๋น์จ์ด ๋ง์ง ์์ ๊ฒฝ์ฐ ์๋ฆฌ๊ฐ ๋จ๊ฒ ๋๋ค. |
cover | ๊ฐ๋ก์ธ๋ก ๋น์จ ์ ์งํ ์ฑ ์ฌ์ด์ฆ ์กฐ์ ๊ฐ๋ฅ. ๋น์จ์ด ๋ง์ง ์๋๋ผ๋ ์ปจํ
์ด๋ ์์ ํ ์ฑ์ ( background-size: cover ๊ณผ ๊ฐ๋ค.) |
none | ๋ณธ๋์ ์ด๋ฏธ์ง ์ฌ์ด์ฆ ์ ์ง. ์ด๋ฏธ์ง๊ฐ ๊ฐ์ด๋ฐ๋ก ๋ณด์ฌ์ง๋ค. |
scale-down | none ๋๋ contain ์ค์ ๋ ์ ์ ํ ๋ฑกํฅ์ผ๋ก ์ด๋ฏธ์ง ์ฌ์ด์ฆ ์กฐ์ . |
<div class="absolute-img">
<img class="object-img" src="https://cdn.pixabay.com/photo/2016/03/26/13/09/cup-of-coffee-1280537_1280.jpg">
</div>
.object-img {
width: 100%;
height: 100%;
object-fit: cover;
}
์ต๋๋จ์ .
IE ๋ฏธ์ง์
1-3. display: flex
<div class="flexbox-img">
<img src="https://cdn.pixabay.com/photo/2016/03/26/13/09/cup-of-coffee-1280537_1280.jpg">
</div>
.flexbox-img {
display: flex;
/* justify-content: center; */
align-items: center;
width: 300px;
height: 300px;
margin: auto;
border: 10px solid red;
overflow: hidden;
}
.flexbox-img > img {
width: auto;
height: 100%;
}
์ต๋๋จ์ .
IE ๋ฏธ์ง์
2. background-image
2-1. background-size
- ๋ฐฐ๊ฒฝ์์๋ง ๋ค์ด๊ฐ ์ ์์ด ์ด๋ฏธ์ง ํ๊ทธ์๋ ์ฌ์ฉ ๋ถ๊ฐ๋ฅ.
- ์๋ฒ์์ ์ด๋ฏธ์ง ์ฃผ์๋ฅผ ์ ๋ฌํ๋ ๊ฒฝ์ฐ, ์ธ๋ผ์ธ ์คํ์ผ๋ก background-image๋ฅผ ๋ฃ์ด์ค์ผ ํ๋ค.
- ์ด๋ฏธ์ง ํ๊ทธ๋ฅผ ์ธ ์ ์์ด SEO๋ ์ฌ์ฉ์ ์ธก๋ฉด์์๋ ๊ธฐ๋ฅ์ด ๋จ์ด์ง.
value | ์ค๋ช |
---|---|
contain | ์ด๋ฏธ์ง์ ๊ฐ๋ก์ธ๋ก ๋น์จ ์ ์ง. ๋์ด์ ๋ง์ถค. |
cover | ์ด๋ฏธ์ง์ ๊ฐ๋ก์ธ๋ก ๋น์จ ์ ์ง. ๋์ด์ ๋ง์ถฐ ์ฃผ์ด์ง ํฌ๊ธฐ ๊ฝ ์ฑ์. |
์ฌ์ด์ฆ ์ง์ ์
๋ ฅ (100%, 200px, 50em ๋ฑ) |
๋น์จ์ ๋ฌด๊ดํ๊ฒ ์
๋ ฅํ ๊ฐ์ ๋ง์ถฐ ์ฌ์ด์ฆ ์กฐ์ . ํ๋๋ง ์ ๋ ฅํ๋ฉด ๊ฐ๋ก๊ฐ, ์ผํ ์์ด ๋๊ฐ ์ ๋ ฅํ๋ฉด ๊ฐ๋ก๊ฐ๊ณผ ์ธ๋ก๊ฐ ๋์ ์ค์ . |
<div class="bg-img"></div>
.bg-img {
width: 300px;
height: 300px;
margin: auto;
background-image: url('https://cdn.pixabay.com/photo/2016/03/26/13/09/cup-of-coffee-1280537_1280.jpg');
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
๋ฐฐ๊ฒฝ์ด๋ฏธ์ง์์๋ง ์ฌ์ฉ ์ฌ์ฉ.
IE9+ ์ง์.
Reference
๋ฐ์ํ
'๐ฉ๐ปโ๐ปSTUDY > CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CSS] ๊ตญ๋ฌธ ์ซ์ ์๋ก ๋ค๋ฅธ ํฐํธ์ ์ฉํ๊ธฐ (unicode-range) (0) | 2021.07.04 |
---|---|
[CSS] ์ด๋ฏธ์ง ๋น์จ๊ณ์ฐ (0) | 2021.06.21 |
[CSS] margin-collapsing(๋ง์ง ์์) (0) | 2021.06.03 |
[CSS] ํ์ ์ ํ์, ์ธ์ ํ์ ์ ํ์ (0) | 2021.04.02 |
[CSS] flexbox๋ก ๋ง๋ค ์ ์๋ 10๊ฐ์ง ๋ ์ด์์ (0) | 2021.01.22 |