CSS Image Sprites là gì?

CSS Image Sprites là gì?

Để hiểu CSS Image Sprites là gì? chúng ta cùng xem xét cách thiết kế Navigation như hình bên dưới, nếu theo cách thông thường bạn phải cần ít nhất ít nhất 8 hình ảnh để làm ảnh nền (Nếu tính cả 4 ảnh cho hiệu ứng Rollover).

CSS Image Sprites

CSS Image Sprites là cách gộp nhiều ảnh nền cần sử dụng vào một file hình duy nhất và sử dụng thuộc tính background-position trong CSS với 2 vị trí Left, Top để  xác định vị trí thành phần ảnh cần làm nền, nhằm giảm tải Request (yêu cầu) đến Server, và giảm dung lượng file hình, tăng tốc độ tải trang, tiết kiệm tài nguyên hệ thống.

Cách sử dụng CSS Image Sprites

Bây giờ chúng ta sẽ cùng thiết kế Navigation như trên bằng cách sử dụng CSS Image Sprites.

Xem Demo 

  Download Demo

Trước tiên bạn phải sử dụng một chương trình đồ họa như Photoshop…, và gộp các file ảnh cần CSS Image Spritessử dụng lại thành một file duy nhất. Mình gộp 8 file hình cần sử dụng tại ví dụ trên thành một file duy nhất với tên icon.gif như sau:

Bạn nên sắp xếp cho thuận lợi trong việc tính toán vị trí của các ảnh.

Tôi sắp xếp các  ảnh liền kề nhau từ trái sang phải, phần đối xứng bên dưới là các hình ảnh sử dụng cho hiệu ứng Rollover.

Tiếp theo là mã HTML

div id="wrapper">
    <ul id="icon">
         <li class="user"><a href="#">User</a></li>
         <li class="rss"><a href="#">Rss</a></li>
         <li class="comment"><a href="#">Comment</a></li>
         <li class="global"><a href="#">Global</a></li>
    </ul>
    </div>

Mã CSS

* {margin: 0; padding: 0}
    #wrapper{margin: 30px auto; width: 500px}
    #icon li{float: left; margin-right: 50px; list-style: none}
    #icon li a{height: 85px; display: block; background: url(imgs/icon.gif); text-indent: -999999px}

Ở đoạn mã CSS trên chúng ta sử dụng file hình icon.gif  duy nhất làm nền cho các thành phần liên kết (#icon li a)

Tiếp theo  chúng ta sẽ Sử dụng thuộc tính background-position để xác định vị trí thành phần ảnh cho các thành phần trong Navigation.

Từ  Photoshop bạn có thể xác định được kích thước các thành phần ảnh như sau:

CSS Image Sprites là gì?

+  Thành phần icon user (#icon li.user a) sử dụng phần trên cùng bên trái của file ảnh icon.gif, nên có vị trí : left: 0px, top: 0px và có độ rộng 54px.

#icon li.user a{width: 54px; background-position: 0 0}

+ Thành phần icon rss(#icon li.rss a)

Thành phẩn ảnh chứa icon RSS có vị trí cách bên trái 54px (Bằng độ lớn của thành phần (#icon li.user a), do đó chúng ta phải di chuyển thành phần ảnh này sang trái -54px để trở về đúng vị trí 0 0, và có độ rộng 51px.

#icon li.rss a{width: 51px; background-position: -54px 0}

Tương tự thành phần icon Comment chúng ta phải dịch chuyển về bên trái 54px (độ lớn icon User) + 51px (Độ lớn icon RSS) = 105px

#icon li.comment a{width: 61px; background-position: -105px 0}

Và icon Global dịch chuyển 105 + 61 = 166px

#icon li.global a{width: 54px; background-position: -166px 0}

Các thành phần ảnh tạo hiệu ứng Rollover có vị trị left giống như trên, chỉ thay đổi vị trí top được dịch chuyển xuống phía dưới 85px (Bằng chiều cao của các Icon), nên ta có mã CSS như sau:

#icon li.user a:hover{background-position: 0 85px}
#icon li.rss a:hover{background-position: -54px 85px}
#icon li.comment a:hover{background-position: -105px 85px}
#icon li.global a:hover{background-position: -166px 85px}

KẾT LUẬN

  • Vị trị left của thành phần ảnh chính là giá trị âm độ lớn khoảng cách của nó so với bên trái. Ví dụ Icon Comment cách bên trái 105px nên vị trí left của nó là: -105px.
  • Vị trí top chính là khoảng cách độ lớnkhoảng cách giữa nó so với bên trên.
  • Bài viết sau tôi sẽ hướng dẫn bạn sử dụng công cụ để tạo ra CSS Image Sprite một cách nhanh và hiệu quả hơn.
Bạn thấy bài viết này như thế nào?: 
No votes yet
Ảnh của Khanh Hoang

Khanh Hoang - Kenn

Kenn is a user experience designer and front end developer who enjoys creating beautiful and usable web and mobile experiences.

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Mac OS X 10.8 Mountain Lion chính thức cập bến Mac App Store

Mac OS X 10.8 Mountain Lion chính thức cập bến Mac App Store

Hệ điều hành mới nhất dành cho máy Mac, OS X 10.8 Mountain Lion, đã chính thức được Apple phát hành trên Mac App Store. Cùng với đó, trình duyệt Safari 6 mới cũng chính thức xuất hiện.

Tại sao cần phải sửa chữa về Accessibility của website

Tại sao cần phải sửa chữa về Accessibility của website

I was amazed and slightly horrified. At the time, I was a web developer working for a federally funded non profit

Sử dụng Drupal 7 Form API states system để tạo conditions between form elements

Sử dụng Drupal 7 Form API states system để tạo conditions between form elements

In this article we will look at how you can leverage the power of the Drupal 7 Form API states system to create dependencies between your form fields. In other words, when you programmatically write your forms,

Công ty diệt chuột T&C

 

Diet con trung