CSS Sprites

De CSS sprites techniek is een manier om het aantal HTTP-verzoeken voor afbeeldingsbronnen te verminderen door afbeeldingen in één bestand te plaatsen.

CSS afbeeldings sprites

Een sprite is een verzameling afbeeldingen die in één bestand zijn geplaatst. Het laden van een webpagina met veel afbeeldingen kan lang duren en er worden meerdere serververzoeken gegenereerd. Door het gebruik van sprites kunnen we het aantal server verzoeken verminderen, hierdoor is het mogelijk om bandbreedte te besparen.

Voorbeeld

CSS sprites in één bestand

In plaats van drie afzonderlijke afbeeldingen te gebruiken, gebruiken we een enkele afbeelding zoals hieronder wordt weergegeven:

sprites

Met CSS kunnen we precies dat deel van de afbeelding laten zien dat we nodig hebben. In het volgende voorbeeld geven we met CSS aan welk deel van de bovenstaande afbeelding moet worden weergegeven.

VoorbeeldVoorbeeld:
.icon_facebook {
  display: inline-block;
  width: 50px;
  height: 50px;
  background: url(images/navsprites.png) 0 0;
}

.icon_feeds {
  display: inline-block;
  width: 50px;
  height: 50px;
  background: url(images/navsprites.png) -57px 0;
}

Voorbeeld in het kort uitgelegd:

display: inline-block;
Hier zorgen we dat de afbeelding wordt weergegeven als een blokelement. Met inline-block wordt tegelijk aangegeven dat we de afbeelding horizontaal willen plaatsen.

width: 50px; height: 50px;
Geeft het gedeelte van de afbeelding aan dat we willen gebruiken.

background: url(navsprites.png) 0 0;
Geeft de achtergrondafbeelding en zijn positie (links 0px, boven 0px) aan. In dit geval wordt als eerste de facebook icon weergeven dat 50px breed is.

CSS naviagtie met sprites

In dit voorbeeld hebben we een navigatie gemaakt van sprites. We hebben dus van een enkele bestand 3 afbeeldingen uitgehaald en er een klikbare menu van gemaakt.

VoorbeeldVoorbeeld:
#navlist {
  position: relative;
}

#navlist li {
  margin: 0;
  padding: 0;
  list-style: none;
  position: absolute;
  top: 0;
}

#navlist li, #navlist a {
  height: 50px;
  display: block;
}

#icon_facebook {
  left: 0px;
  width: 50px;
  background: url('images/navsprites.png') 0 0;
}

#icon_feeds{
  left: 57px;
  width: 50px;
  background: url('images/navsprites.png') -57px 0;
}

#icon_linkedin{
  left: 114px;
  width: 50px;
  background: url('images/navsprites.png') -114px 0;
}

CSS sprites en hover effect

We gaan nu een hover effect aan onze voorbeeld toevoegen. Hiervoor gaan we een nieuwe afbeelding gebruiken, deze bevat drie navigatieafbeeldingen en drie afbeeldingen om te gebruiken voor een muis over (hover).

hover

Omdat dit één enkele afbeelding is en geen zes afzonderlijke bestanden, is er geen laadvertraging wanneer een gebruiker de muisaanwijzer op de afbeelding plaatst.

We voegen slechts drie regels code toe om het hover effect te kunnen gerbuiken:

VoorbeeldVoorbeeld:
#icon_facebook a:hover {
  background: url( 'images/navsprites_hover.png' ) 0 50px;
}

#icon_feeds a:hover {
  background: url( 'images/navsprites_hover.png' ) -57px 50px;
}

#icon_linkedin a:hover {
  background: url( 'images/navsprites_hover.png' ) -114px 50px;
}



Ad blocker gedetecteerd!
  Ons website heeft gedetecteerd dat u een Ad blocker gebruikt. Codecenter.nl is gratis, wij blijven overeind door het weergeven van advertenties en u kunt ons daarbij helpen. Het wordt aanbevolen om uw Ad blocker uit te schakelen zodat u verder gebruik kunt maken van codecenter.nl, alvast bedankt.