Cekerholic

Personal Playground of Aris FM

Mengenal CSS Sprites

30 Oct 2010 Design 14 Comments

Dalam tutorial theme WordPress kemarin, saya menggunakan teknik CSS Sprites untuk membuat efek rollover pada logo blog. Nah, kali ini saya akan menjelaskan tentang CSS Sprites dan penggunaannya.

Konsep CSS Sprites kira-kira seperti ini:

  • Beberapa gambar yang berbeda digabungkan menjadi satu gambar dengan software pengolah gambar, atau istilahnya membuat gambar master.
  • Gambar master itu ditampilkan dalam beberapa elemen HTML pada suatu halaman web dengan posisi atau ukuran yang berbeda dengan menggeser posisi gambar menggunakan CSS

Untuk lebih jelasnya silakan lihat ilustrasi berikut ini:

ilustrasi-sprites

Mengapa Menggunakan CSS Sprites?

Kelebihan utama CSS Sprites adalah mengurangi HTTP Request dari sebuah halaman web. Misalnya saja kita ingin menampilkan 5 buah ikon sosial media di blog kita, anggaplah 1 ikon ukurannya 2 KB, jadi total ukurannya 10 KB. Kemudian 5 ikon itu kita gabungkan dengan photoshop dan ukurannya menjadi 8 KB, ada penghematan 2 KB kan? Dengan menggunakan CSS Sprites selain mengurangi ukuran file juga mengurangi HTTP Request, dari 5 menjadi hanya 1. Bagi situs sekelas Yahoo atau Google yang mempunyai pengunjung ratusan juta, pengurangan sekecil itu adalah sebuah efisiensi yang sangat besar.

Salah satu contoh blog Indonesia yang menggunakan CSS Sprites adalah Navinot. Di blog ini hampir semua gambar dalam CSS dikombinasikan dalam sebuah gambar master berukuran besar, jumlahnya kurang lebih ada 20! Saya perkirakan nilai efisiensinya mencapai 50%.

navinot webpage

Elemen yang dilingkari menggunakan CSS Sprites

navinot-sprites

Gambar yang digunakan untuk CSS Sprites

Bagaimana cara menggunakan CSS Sprites?

Pada prinsipnya CSS Sprites adalah menggeser koordinat X dan Y suatu gambar dengan CSS. Lihat baris kode berikut:

h1 a {
   background-image:url(images/logo.png);
   background-position:0 0;
   height:86px;
   text-indent:-9999px;
   width:334px;
}
h1 a:hover{background-position:0 86px;}

Penjelasannya begini:
CSS mengatur agar elemen anchor (link) pada h1 menampilkan sebuah gambar (logo.png) dengan koordinat X dan Y masing-masing 0. Kemudian CSS mengatur agar ketika elemen anchor(link) pada h1 di-hover koordinat Y berpindah ke posisi 86px. Jadi CSS Sprites itu sebenarnya cuma memindah-mindah posisi gambar pada suatu elemen.

Anda masih bingung? Jika iya silakan baca-baca tulisan tentang CSS Sprites berikut :

  1. A List Apart – CSS Sprites: Image Slicing’s Kiss of Death
  2. CSS Tricks | CSS Sprites: What They Are, Why They’re Cool, and How To Use Them
  3. Smashing Magazine | The Mystery Of CSS Sprites: Techniques, Tools And Tutorials

13 Comments

  1. by Rudy Azhar on 31 October 2010 at 12:01 am. # | Reply

    Saya masih bingung menggunakan CSS Sprite terutama dalam mengatur koordinat X & Y, pernah saya coba tapi berakibat tidak rapi pada element lainnya.

    Dan saya masih belum paham cara menggabungkan gambar . :(

    • by Aris FM on 31 October 2010 at 12:07 am. # | Reply

      saya biasanya menggeser posisi background image menggunakan Firebug, setelah ketemu angka yang cocok baru saya tulis di CSS. Bisa sih sebenarnya dihitung menggunakan Photoshop, tetapi lebih enak pake Firebug :)

  2. by Gus Ikhwan on 31 October 2010 at 12:51 pm. # | Reply

    Terimakasih atas infonya mas oglek, Lalu bagaimana cara menggabuingkan dua gambar? saya juga bingung seperti bro rudhy
    mampir balik, ada wawancara dengan pak zam, di blog sya Promosi LOL

    • by Aris FM on 31 October 2010 at 2:12 pm. # | Reply

      Menggabungkan gambar tentu saja dengan software pengolah gambar, saya menggunakan photoshop.
      BTW, jangan panggil saya Oglek, sebut saja nama saya :)

  3. by NaraBlog | Kumpulan Blogger Indonesia on 31 October 2010 at 12:52 pm. # | Reply

    Theme yang kemarin saya unggah terjadi encoding error pada class function, apakah karena tubrukan dengan plugin advenced exceprt ya?

    • by Aris FM on 31 October 2010 at 4:28 pm. # | Reply

      banyak kemungkinan penyebab terjadinya error PHP di WordPress, kemungkinan bisa juga penyebabnya seperti yang anda katakan bisa juga tidak. Kalau boleh tolong beri penjelasan yang lebih detail ;).

  4. by Mac Wallpaper on 31 October 2010 at 1:26 pm. # | Reply

    not understand.. but thanks :)

  5. by aldy on 6 November 2010 at 7:04 am. # | Reply

    Mas Aris,
    sama dengan mas Rudy, saya masih kelabakan menggunakan CSS sprite, kadang tampilan antar browser bisa aneh. Jan mumet :(

    • by Aris FM on 6 November 2010 at 8:22 am. # | Reply

      Memang untuk membuat CSS Sprites biasanya harus melalui proses trial and error beberapa kali. Saya biasanya mengatur CSS Sprites di firefox dengan pengaya Firebug, kemudian saya cek di browser lainnya apakah posisinya berubah atau tidak. Coba saja terus pak :D

  6. by DV on 11 November 2010 at 5:51 pm. # | Reply

    Kalo menurutku, cara paling mudah untuk mengetahui X dan Y nya justru dari Photoshop.. tracingnya baru via Firebug.

    Aku penggemar berat css sprites…

    • by Aris FM on 17 November 2010 at 8:21 am. # | Reply

      Hehehe tidak semua orang punya Photoshop dab, harganya kan selangit (walaupun bajakannya banyak :P)

  7. by Damn on 22 May 2011 at 10:17 am. # | Reply

    Blog saya udah pke nih, kunjungi aja biar lebìh detail di sana. Praktek dulu, bru kasih tutor..

  8. by oelil on 17 November 2011 at 9:17 pm. # | Reply

    haah..nyari disana-sini..taunya disini banyak tutorial..thanks infoné

1 Pingbacks

  1. [...] saya menulis tentang CSS Sprites dan contoh penggunaannya. Nah kali ini saya akan mengajak anda untuk membuat sebuah Sosial Media Sharing Button/Menu dengan [...]

Leave Your Comment Here