18.mar.10

Tips og Tricks, Webudvikling, webdesign

CSS Sprites – Hvad er det? Og hvordan benytter jeg dem?

CSS Sprites – Hvad er det? Og hvordan benytter jeg dem?

Forleden skrev jeg et blogindlæg omkring mine egne erfaringer i brugen af CSS Sprites, hvor store del af disse erfaringer stammer fra dette website.

På stor opfordring for henholdsvis Martin Nielsen og Niels Gamborg kommer her en “mindre” opfølgning, der fortæller dig lidt om, hvad CSS Sprites i det hele taget er for noget, men også hvordan, du kan benytte dem – rent teknisk.

Indholdsfortegnelse

  1. Kort om CSS Sprites
  2. Hvordan benytter jeg CSS Sprites
  3. Har du spørgsmål?
  4. Gode ressourcer
  5. Andre om CSS Sprites

1. Kort om CSS Sprites

Navnet i sig selv kan måske godt være lidt forvirrende, fordi det i sig selv ikke rigtigt danner et visuelt billede af, hvad CSS Sprites er for en størrelse. Nogle tænker måske på små billeder, men faktisk er det komplet modsat – som sådan.

CSS Sprites er en samling af billeder i et større billede, hvor man efterfølgende benytter sig af muligheden for at positionere baggrundsbillederne ved hjælp af CSS. Dette er jo faktisk slet ikke så tosset endda, da mange små billeder kræver mange kald til serveren, og samtidig kan gøre loadtiden langsomme på et pågældende website. Mange kender det jo nok, når de skal kopierer mange småfiler til en enhed til en anden – sjældent nogen hurtig process. Hvorimod det somregel er en mere nem process, når man flytter store filer.

Og for god service skyld, så viser jeg dig her alle de CSS Sprites, jeg selv har stykket sammen, så slipper du for at hoppe frem og  tilbage ;)

2. Hvordan benytter jeg CSS Sprites?

I stedet for al den snik snak, så synes jeg vi skal hoppe i med begge ben, og derfor kigge nærmere på, hvordan du egentlig benytter disse. Her tager jeg udgangspunkt i et af de nyeste CSS Sprites, jeg har stykket sammen. Rundt på min hjemmeside vil du støde på nogle iøjenfaldende knapper, hvilke jeg for nyligt har valgt at opdatere. Disse knapper består i al enkelthed af forskellige faser, der bliver aktiveret, når brugeren fører musen over knappen, og når brugeren klikker på knappen. Kig nedenfor:

CSS Sprites med 3 knapper af 3 faser

Som du kan se ud af billedet ovenfor, fremgår 3 forskellige knapper, der hver især har 3 stadiger.

  • Et stadige for inaktiv
  • Et stadige for hover
  • et stadige for focus

Det er vigtigt, at brugeren får en rigtig fornemmelse af, at det rent faktisk er en knap, de kan klikke på og benytte. Men al den snak om brugervenlighed og webdesign, kommer i opfølgerenden til blogindlægget omkring, hvordan du bliver en bedre webdesigner.

Førhen ville man måske definere “3 forskellige knapper”, der hver blev især blev placeret på hver sin defination i CSS. Måden ses alligevel ofte anvendt – kender i ikke det, når i fører musen over et element på en pågældende hjemmeside, og der lige går et par sekunder før, at elementet rent faktisk ændrer sig? Heldigvis ikke groft udbredt, men ser det alligevel jævnligt, desværre. Lad os derimod kigge på vores 3 forskellige definationer i CSS og HTML, der hver især skal håndtere knappens 3 stadiger. Lig iøvrigt mærke til, at jeg benytter mig af mine retningslinier fordelt på 2 blogindlæg omkring CSS og HTML ;)

CSS

a.button {
background: url(../images/bg_buttons.jpg) no-repeat 0 0;
display: block;
height: 50px;
text-indent: -9999em;
width: 325px;
}

a.button:hover {
background: url(../images/bg_buttons.jpg) no-repeat 0 -50px;
}

a.button:focus {
background: url(../images/bg_buttons.jpg) no-repeat 0 -100px;
}

HTML

<a href="#comments" title="Afgiv en kommentar" class="button">Afgiv en kommentar</a>

Du undrer dig måske over, hvordan jeg kommer frem til de tal, der positionerer de forskellige faser? Her har jeg heldigvis været dig behjælpelig og lavet en mindre illustration, der viser dig, hvordan jeg er nået frem til disse tal.

Illustration af 3 knapper af 3 faser i forhold til CSS

Så enkelt kan det rent faktisk gøres. Brugeren får en god oplevelse med din knap, og du har sparet serveren for en række unødige kald. Derimod lad os se bort fra, at jeg måske skulle have valgt at benytte mig af <button> frem for <a> – Det er lidt af en smagssag, når jeg læser om det på det store internet. Rent semantisk, så burde du måske nok benytte dig af <button>, da du jo rent faktisk har med en knap at gøre, men lad os gemme den snak til en anden god gang.

Derudover handler det om, at du får bygget en god PSD-fil op, som du fremover nemt og smertefrit kan udvide eller redigere i. Nedenfor kan du se et lille skærmdump af, hvordan mine layers og groups er opsat for ovenstående knapper. Det er ingen skam i livet at være en smule struktureret. Tro mig, det lille forarbejde, vil du elsker i fremtiden ;)

Screenshot af layers i Photoshop brugt til CSS Sprites

3. Har du spørgsmål?

En konklusion er vidst ikke nødvendig i det her tilfælde, men skulle der været opstået spørgsmål i forbindelse med min lille gennemgang, så skal du ikke holde dem tilbage. Hellere stil et spørgsmål for meget end et for lidt (ja, lidt kliché skal man jo være). Uanset hvad, så er der øvrig hjælp at hente nedenfor.

Jeg vil super gerne stille et spørgsmål, smid mig direkte til kommentarfeltet

4. Gode ressourcer

For at spare dig lidt tid, så har du nedenfor nøjagtig de samme gode ressourcer tilgængelig, som du også så i foregående blogindlæg omkring CSS Sprites.

5. Andre omkring CSS Sprites

Og for at spare dig endnu mere tid, så har du nedenfor også de artikler/blogindlæg, der var tilgængelige i foregående blogindlæg.

Jeg vil afgive en kommentar, nu!
  1. Fedt med en dansk tutorial om CSS sprites, Michael! Det er sku til at forstå med de små kode-snippets og beskrivende billeder.
    Keep’em coming ;)
    Seneste blogindlæg: Min nye RSS-reader: Twitter – Slår Google Reader

    Kommentar afgivet: 18/03-2010 - kl. 17:51
  2. Michael ØstergaardFollow me skriver:

    Tak skal du have Kim, det er godt at vide, at det kan bruges til noget :)

    Du kan være ganske rolig, har mange gode ting gemt nede i “skrivebordsskuffen” ;)

    Kommentar afgivet: 18/03-2010 - kl. 18:19
  3. Lars Bo Thomsen skriver:

    Utroligt at et så simpelt redskab kan have så meget værdi. CSS Sprites er helt fantastisk. Jeg er først for nyligt begyndt at lave lidt flottere grafiske knapper i photoshop og der er CSS Sprites simpelthen fantastisk. Har du overvejet at lave lidt link-bait i form af knappe-tutorials? Jeg kunne godt bruge et par modeller at gå ud fra da mine photoshop evner er på mspaint niveau ;)

    Kommentar afgivet: 18/03-2010 - kl. 22:03
  4. Michael ØstergaardFollow me skriver:

    @Lars, rigtig god idé du kommer med. Den skriver jeg fluks på listen :)

    Kommentar afgivet: 19/03-2010 - kl. 09:36
  5. Niels Gamborg skriver:

    Her kommer lige en noget forsinket “thumbs up” til dette indlæg.

    Det er dejligt konkret, og gør det hele meget mere forståeligt. Jeg smider fluks et link til denne opfølgende artikel. :)
    Seneste blogindlæg: Better vampire names

    Kommentar afgivet: 07/04-2010 - kl. 17:03
  6. Michael ØstergaardFollow me skriver:

    @Niels – Bedre sent end aldrig ;) Jeg er glad for at høre, at blogindlægget er nemt og forståeligt, det var også mit mål. Mange tak for linket :)

    Kommentar afgivet: 07/04-2010 - kl. 17:24
Efterlad en kommentar

Vis link til dit seneste blogindlæg (Ved afkrydsning afvent få sekunder)

Hvem er Michael? Gravatar af Michael Østergaard

Passionsfyldt webdesigner, med hang til elektronisk musik, godt selskab og gode film, fra Herning - Jyllands hovedstad og knudepunkt.

Han slår folderne på den solide midtjyske muld i fællesskab med dejlige individer hos Co3 Web Agency i Ikast. Vil du vide mere om Michael?