功能簡介
CSS Sprite 產生器會把一組圖示或小圖合併成一張 Sprite 圖,並寫出顯示每張圖所需的 CSS。新增 PNG、SVG、GIF 或 JPG 檔案,選擇排列方式,就能下載 Sprite 圖 PNG,以及每張圖對應一個類別的樣式表。
類別名稱取自檔名:Home Icon.png 會變成 .icon-home-icon,名稱重複時會自動加上編號。緊密 排列使用裝箱演算法,把不同尺寸的圖片放進最小的畫布;垂直、水平 和 格狀 則提供可預期的位置。
使用方法
- 按 新增圖片… 選擇你的圖示(或先用範例圖示試試)。
- 選擇 排列方式 和 間距。留一點間距可以避免瀏覽器縮放時相鄰圖示互相滲色。
- 設定 類別名稱前綴,以及
background-image中使用的 Sprite 檔名。 - 如果圖片是為 Retina 螢幕以兩倍尺寸繪製,選擇 @2x。
- 按 下載 PNG 和 下載 CSS(也可以按 複製圖片 把雪碧圖直接貼到設計工具或聊天裡),把兩個檔案都上傳後,這樣使用類別:
<span class="icon icon-home"></span>。
範例
.icon {
display: inline-block;
background-image: url("sprite.png");
background-repeat: no-repeat;
}
.icon-home {
width: 32px;
height: 32px;
background-position: 0 0;
}
小提示
- 會一起更新的圖示放在同一張 Sprite 圖裡;重新產生後所有位置都會改變。
- 需要用 CSS 改變顏色的單色圖示,SVG 圖示字型或內嵌 SVG 可能更合適。
常見問題
› 什麼是 CSS Sprite?
就是把許多小圖合成一張圖。每個圖示的顯示方式是把這張圖設為元素的背景,再用 background-position 移動位置,因此頁面只需要一次請求,而不是幾十次。
› 有了 HTTP/2,Sprite 還有用嗎?
作用比以前小,但對大量小圖示、電子郵件範本、遊戲和舊專案依然有幫助,也能避免圖示一個一個載入時的閃爍。
› @2x 選項有什麼作用?
如果原圖是以顯示尺寸的兩倍繪製,CSS 會把所有寬度、高度和位置減半並加上 background-size,讓圖示在高解析度螢幕上保持銳利。
› 我的圖片會被上傳嗎?
不會。Sprite 圖是在你的瀏覽器裡用 canvas 繪製,CSS 也在本機產生。