CSS : Image Sprite
์ด๋ฒ ์๊ฐ์๋ CSS ๊ธฐ๋ฒ ์ค ํ๋์ธ ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ(Image Sprite) + irํจ๊ณผ + ๋ฐฑ๊ทธ๋ผ์ด๋์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค!๐
#1. ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ ๊ธฐ๋ฒ์ด๋?
์ด๋ฏธ์ง ์คํ๋ผ์ดํธ๋ ์ฌ๋ฌ ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ํ๋์ ์ด๋ฏธ์ง๋ก ํฉ์ณ์ ๊ด๋ฆฌํ๋ ๊ธฐ๋ฒ์ ์๋ฏธํฉ๋๋ค.
์น์ ์ ์ํ๋ค ๋ณด๋ฉด ์ด๋ฏธ์ง๊ฐ ์ ์ ์ฆ๊ฐํ๊ฒ ๋๊ณ ๊ทธ๋งํผ ์ฉ๋์ด ์ปค์ง๊ธฐ ๋๋ฌธ์ ๋ก๋ฉ ์๊ฐ์ด ๊ธธ์ด์ง๊ฒ ๋ฉ๋๋ค. ์ด๋ ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ฐ๊ธฐ ์ํ ์๋ฒ ์์ฒญ์ด ์ค๊ณ ๋ก๋ฉ์๊ฐ์ ์ ์ฝํ ์ ์๊ฒ ๋ฉ๋๋ค.
๋ํ, ์ฌ๋ฌ ์ด๋ฏธ์ง ํ์ผ์ ๊ด๋ฆฌํ๋ ๋์ ๋ช ๊ฐ์ ์คํ๋ผ์ดํธ ์ด๋ฏธ์ง ํ์ผ๋ง์ ๊ด๋ฆฌํ๋ฉด ๋๋ฏ๋ก ๋งค์ฐ ๊ฐํธํฉ๋๋ค.
๐ก ๊ทธ๋ผ ๋ค์์ ์์ ๋ฅผ ํตํด ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ ๊ธฐ๋ฒ์ ์ดํดํด๋ณด๋๋ก ํฉ์๋ค!
#2. ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ๋ฅผ ์ฌ์ฉํด๋ณด์! : ํผ๊ทธ๋ง
๋ค์์ ์์ด์ฝ์ ํ ๋ฒ์ ๋ฃ๊ธฐ ์ํด ์ด๋ฏธ์ง๋ฅผ ์์ ํด๋ณด๊ฒ ์ต๋๋ค. ์ฐ์ 36x36์ ํฌ๊ธฐ๋ก 50px ์ฉ ๊ฐ๊ฒฉ์ ๋ง์ถฐ ๋์ดํด์ค๋๋ค. ์ฌ๊ธฐ์ ํฌ์ธํธ๋ ์ฝ๋ฉ์ ํ ๋ ํธํ๋๋ก ์ผ์ชฝ ์ ๋ชจ์๋ฆฌ์ ๋ง์ถฐ์ ์ ๋ ฌํ๋ ๊ฒ ์ ๋๋ค! ๊ทธ ๋ค ๋ฐฑ๊ทธ๋ผ์ด๋ ์ด๋ฏธ์ง์ ๋ฃ์ svg ํ์ผ๋ก ์ ์ฅํฉ๋๋ค.
! ํผ๊ทธ๋ง Tip !
์ด๋ฏธ์ง ์คํ๋ผ์ดํธ ๊ธฐ๋ฒ์ ์ฌ์ฉํ ๋ ํ ํ๋ ์ ์์ ํ ๋ฒ์ ์์
ํ ๋ค ์ ์ฅํ๋ ๊ฒ ์ค์!
#3. ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ๋ฅผ ์ฌ์ฉํด๋ณด์! : HTML / CSS
์์
ํ๋ ์ด๋ฏธ์ง๋ฅผ ์ฝ๋ฉํ๊ธฐ ์ํด์ irํจ๊ณผ์ background ์์ฑ์ด ํ์ํฉ๋๋ค. ๋จผ์ ir์ ์น ํ์ค์ ์ค์ํ๊ธฐ ์ํด alt ์์์ ๋๋ณํด์ฃผ๊ณ ๋ฐฑ๊ทธ๋ผ์ด๋์ url์ ํตํด ์์ด์ฝ์ ์ฝ์
ํ์ฌ ๊ฐ ๊ฐ๊ฒฉ์ ๋ง๊ฒ position์ ์กฐ์ ํด์ฃผ๋ฉด ๋ฉ๋๋ค.
์ ์์ ์์๋ ๊ฐ๊ฒฉ์ ๊ฐ 50px์ฉ ์์
ํ๊ธฐ ๋๋ฌธ์ ๋ง์ฐฌ๊ฐ์ง๋ก 50px์ฉ ๊ฐ๊ฒฉ์ ๋ง์ถฐ์ ๋ฐฑ๊ทธ๋ผ์ด๋ - ํฌ์ง์
์ ์ ํด์ค๋๋ค.
! ir ์ฌ์ฉ ๋ฐฉ๋ฒ !
.ir {
display: block;
overflow: hidden;
font-size: 0;
line-height: 0;
text-indent: -9999px;
}
ir ํจ๊ณผ (์ด๋ฏธ์ง ๋์ฒด ํจ๊ณผ == alt) : ๊ฐ์์์๋ฅผ ๋์ด์ alt ์์ฑ์ ์ ์ธํ์ฌ ์น ํ์ค์ ์ค์์์ผ์ผ ํ๋ค. ๋๋ณด๊ธฐ๋ ์ฝํ์ง๋ง ํ์ด์ง ํ๋ฉด์์ ์๊ฐ์ ์ผ๋ก๋ ๋ณด์ด์ง ์๋๋ค.
! background ์ฌ์ฉ ๋ฐฉ๋ฒ !
background: url(ํ์ผ ๊ฒฝ๋ก or ์ด๋ฏธ์ง ๋งํฌ) : ์ด๋ฏธ์ง๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋์ ์ฝ์
ํ๋ค.
ex) background: url(img/img_bg01_01.jpg) no-repeat center;
background - position : ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ด์์ ์ด๋ฏธ์ง์ ์์น๋ฅผ ์ค์ ํ๋ค.
ex) background-position: -50px 0;
๐ก ๊ทธ๋ผ ๋ค์์ ์์ ๋ฅผ ํตํด ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ๋ฅผ ์ดํดํด๋ณด๋๋ก ํฉ์๋ค!
! ์ค๋ช
!
1. html์์ ์์ด์ฝ์ ์ฝ์
ํ aํ๊ทธ์ spanํ๊ทธ๋ฅผ 5๊ฐ ๋ง๋ค๊ณ ํ
์คํธ๋ฅผ ์ ํด์ค ๋ค css์์ฑ์์ irํจ๊ณผ๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ์ ํ์์ ir์ ์ ์ธํด์ค๋๋ค.
2. background ์์ฑ์ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ ๊ธฐ๋ฒ์ ์ฌ์ฉํฉ๋๋ค.
3. background: url() = ์ฝ์
ํ ์ด๋ฏธ์ง ๋งํฌ ๋๋ ๊ฒฝ๋ก๋ฅผ ์ ์ธํฉ๋๋ค.
4. background - position ์์ฑ๊ณผ :nth-child()๋ ๊ฐ์ ํด๋์ค๋ฅผ ํตํด ๊ฐ ํด๋น ์์์๊ฒ๋ง background - position ์์ฑ์ ๋ถ์ฌํด์ฃผ์ด ๊ฐ๊ฒฉ์ ๋ง์ถฐ์ค๋๋ค.
= ์ด๋ฏธ์ง์ ์ขํ๊ฐ์ ์ฎ๊ฒจ์ ํด๋น ์ด๋ฏธ์ง๋ฅผ ํ๋์ฉ ๋ณด์ด๋๋ก ํฉ๋๋ค.
๋ค์ ์๊ฐ์๋ ์ฌํ ๋ฒ์ ์ผ๋ก ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ ๊ธฐ๋ฒ์ ์ฌ์ฉํ ์ด๋ฏธ์ง ํ์ด์ง๋ฅผ ์ค์ตํด๋ณด๊ฒ ์ต๋๋ค. ๊ณ ์๋ง์ผ์ จ์ต๋๋ค๐คฉ
'CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CSS] CSS์ ์์ ํํ ๋ฐฉ๋ฒ (2) | 2022.08.24 |
---|---|
[CSS] CSS ๋จ์์ ์ข ๋ฅ (2) | 2022.08.24 |
[CSS] SCSS ์ค์ต01 : ์์ง์ด๋ ๊ฐ์์ง ์ผ๋ฌ์คํธ ๐ถ (4) | 2022.08.19 |
[CSS] SCSS ์ธ์ด๋? (3) | 2022.08.19 |
[CSS] ๋ฏธ๋์ด์ฟผ๋ฆฌ (3) | 2022.08.16 |
๋๊ธ