Az image sprite egyetlen képbe helyezett képek gyűjteménye.
A sok képet tartalmazó weboldal betöltése és létrehozása sokáig tarthat több szerver kérés.
A kép sprite használata csökkenti a szerverkérések és mentések számát sávszélesség.
Három különálló kép helyett ezt az egyetlen képet használjuk ("img_navsprites.gif"):
A CSS segítségével a képnek csak azt a részét tudjuk megjeleníteni, amelyre szükségünk van.
A következő példában a CSS határozza meg, hogy az "img_navsprites.gif" melyik része megjelenítendő kép:
#home
{
width: 46px;
height: 44px;
background: url(img_navsprites.gif) 0 0;
}
Próbálja ki Ön is →
<!DOCTYPE html>
<html>
<head>
<style>
#home {
width: 46px;
height: 44px;
background: url(img_navsprites.gif) 0 0;
}
#next {
width: 43px;
height: 44px;
background: url(img_navsprites.gif) -91px 0;
}
</style>
</head>
<body>
<img id="home" src="img_trans.gif" width="1" height="1">
<img id="next" src="img_trans.gif" width="1" height="1">
</body>
</html>
Példa magyarázata:
<img id="home" src="img_trans.gif">
- Csak egy kis átlátszó képet határoz meg, mert az src attribútum nem lehet üres. A megjelenített kép a CSS-ben megadott háttérkép lesz
width: 46px; height: 44px;
- Meghatározza a kép használni kívánt részét
background: url(img_navsprites.gif) 0 0;
- Meghatározza a háttérképet és annak pozícióját (bal 0px, felül 0px)
Ez a legegyszerűbb módja a kép sprite használatának, most linkekkel és hover effektusokkal szeretnénk bővíteni.
A sprite képet ("img_navsprites.gif") szeretnénk használni egy navigációs lista létrehozásához.
HTML listát fogunk használni, mert lehet hivatkozás, és támogatja a háttérképet is:
#navlist {
position: relative;
}
#navlist li {
margin: 0;
padding: 0;
list-style: none;
position: absolute;
top: 0;
}
#navlist li, #navlist a {
height: 44px;
display: block;
}
#home {
left: 0px;
width: 46px;
background: url('img_navsprites.gif')
0 0;
}
#prev {
left: 63px;
width: 43px;
background: url('img_navsprites.gif') -47px 0;
}
#next {
left: 129px;
width: 43px;
background: url('img_navsprites.gif')
-91px 0;
}
Próbálja ki Ön is →
<!DOCTYPE html>
<html>
<head>
<style>
#navlist {
position: relative;
}
#navlist li {
margin: 0;
padding: 0;
list-style: none;
position: absolute;
top: 0;
}
#navlist li, #navlist a {
height: 44px;
display: block;
}
#home {
left: 0px;
width: 46px;
background: url('img_navsprites.gif') 0 0;
}
#prev {
left: 63px;
width: 43px;
background: url('img_navsprites.gif') -47px 0;
}
#next {
left: 129px;
width: 43px;
background: url('img_navsprites.gif') -91px 0;
}
</style>
</head>
<body>
<ul id="navlist">
<li id="home"><a href="default.asp"></a></li>
<li id="prev"><a href="css_intro.asp"></a></li>
<li id="next"><a href="css_syntax.asp"></a></li>
</ul>
</body>
</html>
Példa magyarázata:
#navlist {position:relative;}
- a pozíció relatívra van állítva, hogy lehetővé tegye az abszolút pozicionálást benne
#navlist li {margin:0;padding:0;list-style:none;position:absolute;top:0;}
- a margó és a kitöltés 0-ra van állítva, a listastílus eltávolítva, és az összes listaelem abszolút pozícióba kerül
#navlist li, #navlist a {height:44px;display:block;}
- az összes kép magassága 44 képpont
Most kezdje el az egyes részek elhelyezését és stílusát:
#home {left:0px;width:46px;}
- Teljesen balra helyezve, a kép szélessége 46 képpont
#home {background:url(img_navsprites.gif) 0 0;}
- Meghatározza a háttérképet és annak pozícióját (bal 0px, felül 0px)
#prev {left:63px;width:43px;}
- 63 képponttal jobbra elhelyezve (#otthon szélessége 46 képpont + némi extra hely az elemek között), a szélessége pedig 43 képpont
#prev {background:url('img_navsprites.gif') -47px 0;}
- Meghatározza a háttérképet 47 képponttal jobbra (#home szélesség 46px + 1px vonal osztó)
#next {left:129px;width:43px;}
- 129 képponttal jobbra elhelyezve (az #előző kezdete 63 képpont + #előző szélessége 43 képpont + extra szóköz), a szélessége pedig 43 képpont
#next {background:url('img_navsprites.gif') -91px 0;}
- Meghatározza a háttérképet 91 képponttal jobbra (#home szélesség 46px + 1px sorelválasztó + #előző szélesség 43 képpont + 1 képpont sorelválasztó)
Most egy lebegtetési effektust szeretnénk hozzáadni a navigációs listánkhoz.
Tipp: A :hover
választó minden elemnél használható, nem csak linkeken.
Új képünk ("img_navsprites_hover.gif") három navigációs képet tartalmaz és három kép a lebegési effektusokhoz:
Mivel ez egyetlen kép, és nem hat különálló fájl, nem lesz betöltési késleltetéset, amikor a felhasználó a kép fölé viszi az egérmutatót.
Csak három sor kódot adunk hozzá a lebegési effektus hozzáadásához:
#home a:hover {
background: url('img_navsprites_hover.gif') 0 -45px;
}
#prev a:hover {
background: url('img_navsprites_hover.gif') -47px
-45px;
}
#next a:hover {
background: url('img_navsprites_hover.gif') -91px
-45px;
}
Próbálja ki Ön is →
<!DOCTYPE html>
<html>
<head>
<style>
#navlist {
position: relative;
}
#navlist li {
margin: 0;
padding: 0;
list-style: none;
position: absolute;
top: 0;
}
#navlist li, #navlist a {
height: 44px;
display: block;
}
#home {
left: 0px;
width: 46px;
background: url('img_navsprites_hover.gif') 0 0;
}
#prev {
left: 63px;
width: 43px;
background: url('img_navsprites_hover.gif') -47px 0;
}
#next {
left: 129px;
width: 43px;
background: url('img_navsprites_hover.gif') -91px 0;
}
#home a:hover {
background: url('img_navsprites_hover.gif') 0 -45px;
}
#prev a:hover {
background: url('img_navsprites_hover.gif') -47px -45px;
}
#next a:hover {
background: url('img_navsprites_hover.gif') -91px -45px;
}
</style>
</head>
<body>
<ul id="navlist">
<li id="home"><a href="default.asp"></a></li>
<li id="prev"><a href="css_intro.asp"></a></li>
<li id="next"><a href="css_syntax.asp"></a></li>
</ul>
</body>
</html>
Példa magyarázata:
#home a:hover {background: url('img_navsprites_hover.gif') 0 -45px;}
- Mindhárom lebegő képhez ugyanazt a háttérpozíciót adjuk meg, csak 45 képponttal lejjebb