์ด๋ฏธ์ง ์คํ๋ผ์ดํธ
์ด๋ฒ ํฌ์คํ ์์๋ ์ง๋๋ฒ์ ์ฌ๋ ธ๋ ์ด๋ฏธ์ง ์ ํ 03 ํฌ์คํ ์์ ํ์ฉ๋ ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ ํจ๊ณผ์ ๋ฐฑ๊ทธ๋ผ์ด๋, IR ํจ๊ณผ์ ๋ํด ์ฌ๋ ์๊ฒ ๋ค๋ค๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์ด๋ฏธ์ง ์คํ๋ผ์ดํธ(Image Sprite)๋?
์ฌ๋ฌ ์ด๋ฏธ์ง๋ฅผ ํ๋์ ์ด๋ฏธ์ง๋ก ํฉ์ณ์ ๊ด๋ฆฌํ๋ ์ด๋ฏธ์ง๋ฅผ ์๋ฏธํ๋ค. ์น์ ์ ์ํ๋ค๋ณด๋ฉด ์ฌ์ฉ๋๋ ์ด๋ฏธ์ง ์๋ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐํ๊ฒ ๋ ๊ฒ์ด๋ฉฐ ๊ทธ๋งํผ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์ ์์ฒญํด์ผ ํ ์ด๋ฏธ์ง์ ์๊ฐ ๋์ด๋๊ฒ ๋๋ฏ๋ก ๋ก๋ฉ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๊ฒ ๋๋ค. ํ์ง๋ง ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ์์ฒญํด์ผ ํ ์ด๋ฏธ์ง์ ์๋ฅผ ์ค์ฌ ๋ก๋ฉ ์๊ฐ์ ์ ์ฝํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
Figma ์์
๋ค์ ์์ ๋ SNS ๊ณต์ ๊ธฐ๋ฅ์ ์ํ ์์ด์ฝ(36x36px ์ฌ์ด์ฆ)์ 14px ๊ฐ๊ฒฉ์ผ๋ก ๋จ์ด๋จ๋ ค ์์ด์ฝ ํ๋๋น 50px์ฉ ์ฐจ์งํ๋๋ก ๋ ์ด์์์ ์ง ๋์ ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ ์์ ์ด๋ค. ํด๋น ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ ํ๋ ์์ SVG ํ์ผ๋ก ์ถ์ถํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
HTML ์ฝ๋ ์์
Figma ์์ ์์์ฒ๋ผ ์์ด์ฝ ์ฌ๋ฌ๊ฐ๋ฅผ ๋ฐฐ์นํ ํ SVG ํ์ผ๋ก ๋ฌด์ฌํ ์ถ์ถํด๋๋ค๋ฉด ์ด์ HTML ์์ญ์ ์๋์ ๊ฐ์ด ์ฝ๋ฉํ๋๋ก ํ๋ค.
<div class="image__sns">
<a href="#" class="link"><span class="ir">๊ณต์ ํ๊ธฐ</span></a>
<a href="#" class="link"><span class="ir">Twitter</span></a>
<a href="#" class="link"><span class="ir">Instagram</span></a>
<a href="#" class="link"><span class="ir">YouTube</span></a>
<a href="#" class="link"><span class="ir">Facebook</span></a>
</div>
CSS ์ฝ๋ ์์
์ด์ CSS ์ฝ๋์์ ๋ณธ๊ฒฉ์ ์ผ๋ก ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ์ IR ํจ๊ณผ, ๋ฐฑ๊ทธ๋ผ์ด๋ ํจ๊ณผ๋ฅผ ํ์ฉํด๋ณด์.
01. ๋จผ์ ์ถ๋ ฅํด์ฃผ๊ณ ์ ํ๋ image__sns ํ๊ทธ์ a ์์ญ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ํจ๊ณผ๋ก Figma๋ก ์์ฑํ ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ์ฉ
SVG ํ์ผ์ ์ถ๋ ฅ์์ผ์ฃผ๋๋ก ํ๋ค.
02. ๊ทธ๋ฐ ๋ค์ nth-child๋ฅผ ์ด์ฉํด background-position์ -50px ๋จ์๋ก ์ฎ๊ฒจ์ฃผ๋ฉด์ ๊ฐ๊ฐ์ ๋ค๋ฅธ ์์ด์ฝ๋ค์ ์ถ๋ ฅ์์ผ์ค๋ค.
03. ๊ทธ๋ฐ ๋ค์ IR ํจ๊ณผ๋ฅผ ์ด์ฉํด ๋ฐฉ๊ธ ์ HTML ์ฝ๋ ์์ ์์ ์
๋ ฅํด๋๋ ํ
์คํธ๋ฅผ ๋ณด์ด์ง ์๋๋ก ์์
ํ๋ค.
์ด๋ ์๊ฐ ์ฅ์ ์ธ์ฉ ์คํฌ๋ฆฐ ๋ฆฌ๋๊ธฐ์๋ ํ
์คํธ๊ฐ ์ฝํ๋๋ก ํ๋ฉด์ ๋์์ ๋น์ฅ์ ์ธ๋ค์๊ฒ๋ ํ
์คํธ๊ฐ ๋ณด์ด์ง ์๋๋ก ํ๊ธฐ ์ํจ์ด๋ค.
.image__sns a {
width: 36px;
height: 36px;
background: #fff;
border-radius: 50%;
display: block;
margin-bottom: 5px;
background: url(img/image_bg03_icon.svg); /* ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์์ด์ฝ 5๊ฐ ๋ง๋ ๊ฑฐ ์ถ๋ ฅํ๊ธฐ */
}
/* ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ */
/* ์์ด์ฝ 5๊ฐ๋ฅผ ์ด์ด ๋ง๋ ํ๋ ์์ SVG๋ก ์ถ์ถํ์ฌ ๊ทธ ์ขํ๊ฐ์ ์๋์ ๊ฐ์ด
์ฎ๊ฒจ๊ฐ๋ฉฐ ์์ด์ฝ ํ๋์ฉ ๋ณด์ด๋๋ก ํ๋ ๊ธฐ๋ฒ */
.image__sns a:nth-child(1) {
/* ์ฒซ ๋ฒ์งธ ์์ด์ฝ์ ๊ทธ๋๋ก */
}
.image__sns a:nth-child(2) {
background-position: -50px 0;
}
.image__sns a:nth-child(3) {
background-position: -100px 0;
}
.image__sns a:nth-child(4) {
background-position: -150px 0;
}
.image__sns a:nth-child(5) {
background-position: -200px 0;
}
/* ir ํจ๊ณผ (์ด๋ฏธ์ง ๋์ฒด ํจ๊ณผ == alt) */
/* ํ๋ฉด์์์๋ ์๋์ค๊ฒ ํจ๊ณผ ๋์์ ์คํฌ๋ฆฐ๋ฆฌ๋๊ธฐ์๋ ์ฝํ๊ฒ ํ๋ ์์
*/
.ir {
display: block;
overflow: hidden;
font-size: 0;
line-height: 0;
text-indent: -9999px;
}
์ฝ๋ํ ๊ฒฐ๊ณผ
์ฌ์ฉ๋ SVG ํ์ผ
'CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CSS] ์์ ํํํ๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ (8) | 2022.08.23 |
---|---|
[CSS] CSS ๋จ์ ์ข ๋ฅ ๋ฐ ๊ณ ์ฐฐ (12) | 2022.08.23 |
[CSS] SCSS & Pug ํ์ฉ - ๊ฐ์์ง ์ ๋๋ฉ์ด์ ๋ง๋ค๊ธฐ๐ถ (10) | 2022.08.18 |
[CSS] Sass(SCSS) ์์๋ณด๊ธฐ (3) | 2022.08.18 |
[CSS] ๊ธฐ๋ณธ ๋ฌธ๋ฒ - ์คํ์ผ์ํธ๋ฅผ ๋ถ๋ฌ์ค๋ ๋ฐฉ๋ฒ๋ค ์ ๋ฆฌ (4) | 2022.08.14 |
๋๊ธ