๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
CSS

[CSS] ์ด๋ฏธ์ง€ ์Šคํ”„๋ผ์ดํŠธ ๊ธฐ๋ฒ• + irํšจ๊ณผ / ๋ฐฑ๊ทธ๋ผ์šด๋“œ

by _ํ† ๋งคํ†  2022. 8. 22.
728x90

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 ์†์„ฑ์„ ๋ถ€์—ฌํ•ด์ฃผ์–ด ๊ฐ„๊ฒฉ์„ ๋งž์ถฐ์ค๋‹ˆ๋‹ค.
= ์ด๋ฏธ์ง€์˜ ์ขŒํ‘œ๊ฐ’์„ ์˜ฎ๊ฒจ์„œ ํ•ด๋‹น ์ด๋ฏธ์ง€๋ฅผ ํ•˜๋‚˜์”ฉ ๋ณด์ด๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.


๋‹ค์Œ ์‹œ๊ฐ„์—๋Š” ์‹ฌํ™” ๋ฒ„์ „์œผ๋กœ ์ด๋ฏธ์ง€ ์Šคํ”„๋ผ์ดํŠธ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•œ ์ด๋ฏธ์ง€ ํŽ˜์ด์ง€๋ฅผ ์‹ค์Šตํ•ด๋ณด๊ฒ ์Šต๋‚˜๋‹ค. ๊ณ ์ƒ๋งŽ์œผ์…จ์Šต๋‹ˆ๋‹ค๐Ÿคฉ

728x90

๋Œ“๊ธ€


Lucky Charms Rainbow
js
html
css