Yahoo rules #1 | Comment créer des sprites Html/Css ?
Un petit tutoriel pour mettre en place un sprite en css et ainsi diminuer le nombre de requêtes http…
Quand je disais petit, c’est vraiment petit… Car la manipulation est vraiment très “simple” à faire.
Voici la liste des “rules” (avec leurs traductions approximatives en anglais) :
- Make fewer HTTP request (Faire moins de requêtes HTTP)
- Use a CDN (Utiliser un CDN)
- Add an expires header (Donner une date d’éxpiration aux header)
- Gzip Components (GZipper les composants)
- Put stylesheet at the top (Mettre les feuilles de style en haut de la page)
- move scripts to the bottom (Les scripts Js en bas)
- Avoid css expressions
- Make Js and Css external ( externaliser les codes Js et Css)
- Reduce DNS lookups
- Minify Js (Minimiser (compresser) le Js)
- Avoid redirects (éviter les redirections)
- Remove duplicate scripts
- Configure ETags
- Make Ajax cacheable (faire que l’ajax soit cacheable (qu’on puisse le mettre en cache…))
Cet article est le premier d’une série qui vous présentera les “Yahoo rules”, de manière abordable, donc facile à mettre en oeuvre et en Français… Libre à vous et à votre imagination de les utiliser couplée avec d’autres astuces
Revenons à nos moutons, pour faire un sprite css il vous faut :
- Un logiciel de graphisme (Photoshop, PSP, etc…)
- Une page Html
- Une feuille de style Css
Vous devrez pour chaque image dans le sprite, prendre les coordonnées du points situé en haut à gauche. Essayez de positionner chaque éléments sur une position x,y entière (ex : 1,2 ou 61,78). Cela vous facilitera grandement la tâche une fois en Css.
Une fois que vous avez noté la position x et y de chaque éléments. Vous allez ouvrir votre feuille de style Css.
Votre code devrait ressembler à ceci (sans sprite) :
{
background: #fff url(../img/lapin.png) 0 0 no-repeat;
[...]
}
Vous allez :
- Changer l’image et mettre votre sprite
- Modifier le positionnement (actuellement 0 0) et le mettre au valeurs récupérée auparavant.
{
background: #fff url(../img/sprite.png) -10px -11px no-repeat;
[...]
}
Cette opération est à répéter pour chaque image (background) de votre sprite.
Normalement le changement ne doit pas se voir et vous avez réussit à faire un sprite et améliorer sensiblement le temps de chargement de votre page.
Pour plus d’informations et/ou améliorations vous pouvez visiter la page officielle de cette Yahoo rule : http://developer.yahoo.com/performance/rules.html#num_http
à bientot !


Blog Référencement (SEO), Graphisme, Web, Communication et compagnie…


Nicolas deschamps