CSS Sprite (雪碧圖)

CSS Sprite技術(shù)被國(guó)內(nèi)一些人稱(chēng)為CSS雪碧圖邪锌,其實(shí)就是把網(wǎng)頁(yè)中一些背景圖片整合到一張圖片文件中摩瞎,再利用CSS的“background-image”膝昆,“background- repeat”,“background-position”的組合進(jìn)行背景定位訪問(wèn)圖標(biāo)烛恤。

我曾經(jīng)用過(guò)的一張雪碧圖:
拼合后
圖標(biāo)引用方式
CSS控制

很多網(wǎng)站喜歡運(yùn)用雪碧圖廓潜,訪問(wèn)量大的網(wǎng)站尤是如此抵皱。為什么呢? 分開(kāi)管理不是更加靈活嗎?大家都這么做當(dāng)然有它的優(yōu)點(diǎn)善榛, 但同樣存在缺點(diǎn)。

【優(yōu)點(diǎn)】

(1) 1 + 1 < 2

圖標(biāo)放在一起, 可以令圖標(biāo)的總?cè)萘可孕∫稽c(diǎn). 這不是最重要的, 但我可以告訴你, 很多程序員都是完美主義者.

(2)讓連接次數(shù)大量減少

用過(guò) Opera 的朋友可能會(huì)對(duì)它那個(gè)顯示圖片下載的進(jìn)度條印象很深, 它會(huì)顯示 “已下載圖片/圖片總數(shù)”. 對(duì)于 Web 服務(wù)器上的每個(gè)獨(dú)立資源, 都需要去連接和獲取的. 所以大家都設(shè)法將很多圖標(biāo)放在一個(gè)圖片上, 連接一次就全部取回來(lái). 這也許是一圖多標(biāo)的主要目的.

(3) 讓瀏覽器將圖標(biāo)預(yù)先下載

瀏覽器為了盡快地顯示頁(yè)面, 一般只是將打開(kāi)頁(yè)面時(shí)用到的圖片下載到本地, 而一些可能用到, 但沒(méi)有立刻被用到的圖片需要在應(yīng)用的時(shí)候再進(jìn)行下載. 最經(jīng)典的例子可能是導(dǎo)航菜單的 Tab 圖標(biāo), 如果普通狀態(tài)的 Tab 圖標(biāo)和鼠標(biāo)懸停時(shí)的圖標(biāo)都是獨(dú)立放置的, 那么當(dāng)你鼠標(biāo)移動(dòng)到 Tab 按鈕時(shí), 圖標(biāo)才開(kāi)始下載, 這樣會(huì)帶給用戶(hù)很不好的視覺(jué)效果. 所以我覺(jué)得遇到這種情況時(shí), 將多個(gè)圖標(biāo)合并在一起的處理是必須的.

【缺點(diǎn)】

(1)圖片難以管理, 難以定位

如果你要更換一個(gè)圖標(biāo), 那么你需要編輯整個(gè)大圖片. 如果你要改變一個(gè)圖標(biāo)的大小, 很可能你需要重新計(jì)算它的位置, 甚至無(wú)從下手, 只能在別的位置再添加一個(gè)圖標(biāo).

(2) 2 > 1

兩個(gè)圖標(biāo)合成的圖片是肯定比其中一個(gè)圖標(biāo)獨(dú)占的圖片大的, 也就是說(shuō), 下載這個(gè)圖片所需的時(shí)間將比單獨(dú)一個(gè)圖標(biāo)用的時(shí)間長(zhǎng). 瀏覽器顯示圖片一般都是下載完則顯示或者邊下載邊顯示的, 如果你那幾個(gè)圖標(biāo)組成的圖片容量比較大, 那么它們不能逐個(gè)顯示予用戶(hù), 會(huì)造成很不好的用戶(hù)體驗(yàn).

【實(shí)現(xiàn)方式】

(1)PS手動(dòng)拼圖
適合小網(wǎng)站呻畸,圖標(biāo)不是很多的時(shí)候使用移盆。

(2)使用sprite工具自動(dòng)生成
CssGaga:一款自動(dòng)化網(wǎng)頁(yè)設(shè)計(jì)工具集合軟件(該軟件只能在Windows環(huán)境下運(yùn)行)。
利用它能快速生成雪碧圖及對(duì)應(yīng)的background-position代碼伤为,還能進(jìn)行css格式化,將css進(jìn)行壓縮味滞,去掉多余的空格、換行钮呀、注釋?zhuān)⑶疫M(jìn)行兼容性的優(yōu)化。

CssGaga
說(shuō)明

可以訪問(wèn)ytzong的博客99css學(xué)習(xí)CssGaga的使用方法昨凡。

【使用注意事項(xiàng)】

(1)讓圖標(biāo)盡量排列得有規(guī)律

有規(guī)律地排放的圖標(biāo)跟容易定位和維護(hù), 這里的間隔可以使用 16, 32, 48, 96 等標(biāo)準(zhǔn)尺寸爽醋。

(2) 將背景顏色一致的圖標(biāo)放置在一起

如果背景顏色不一樣, 最好分為兩個(gè)或多個(gè)圖片放置, 特別是背景顏色相近的, 很容易混淆。

(3) 將相同欄目的圖標(biāo)放置在一起

這樣可以少寫(xiě)一些 CSS 代碼. 設(shè)置一個(gè) background, 再在每個(gè)項(xiàng)設(shè)置 background-position 就行了便脊。

(4)不要將大圖綁在一塊

大圖綁在一塊影響頁(yè)面加載速度蚂四,大部分用戶(hù)都不會(huì)耐心地等待頁(yè)面的所以文件被下載完畢再進(jìn)行閱讀。

示例:
雪碧圖
DOM
對(duì)應(yīng)CSS
效果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末哪痰,一起剝皮案震驚了整個(gè)濱河市遂赠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌晌杰,老刑警劉巖跷睦,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異肋演,居然都是意外死亡抑诸,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)爹殊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蜕乡,“玉大人,你說(shuō)我怎么就攤上這事梗夸〔懔幔” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵反症,是天一觀的道長(zhǎng)辛块。 經(jīng)常有香客問(wèn)我,道長(zhǎng)惰帽,這世上最難降的妖魔是什么憨降? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮该酗,結(jié)果婚禮上授药,老公的妹妹穿的比我還像新娘士嚎。我一直安慰自己,他們只是感情好悔叽,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布莱衩。 她就那樣靜靜地躺著,像睡著了一般娇澎。 火紅的嫁衣襯著肌膚如雪笨蚁。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,842評(píng)論 1 290
  • 那天趟庄,我揣著相機(jī)與錄音括细,去河邊找鬼。 笑死戚啥,一個(gè)胖子當(dāng)著我的面吹牛奋单,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播猫十,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼览濒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了拖云?” 一聲冷哼從身側(cè)響起贷笛,我...
    開(kāi)封第一講書(shū)人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宙项,沒(méi)想到半個(gè)月后乏苦,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡杉允,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年邑贴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叔磷。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拢驾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出改基,到底是詐尸還是另有隱情繁疤,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布秕狰,位于F島的核電站稠腊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏鸣哀。R本人自食惡果不足惜架忌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望我衬。 院中可真熱鬧叹放,春花似錦饰恕、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至俱恶,卻和暖如春雹嗦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背合是。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工了罪, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人聪全。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓捶惜,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親荔烧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 雪碧圖的使用場(chǎng)景: 1汽久,靜態(tài)圖片鹤竭,不隨用戶(hù)信息的變化而變化 ...
    哈哈騰飛閱讀 865評(píng)論 0 3
  • What's CSS Sprite CSS Sprite是網(wǎng)頁(yè)處理圖片的一種方式。它允許你將網(wǎng)頁(yè)中會(huì)使用到各種零星...
    居客俠閱讀 584評(píng)論 0 0
  • 參考視頻地址:CSS Sprite雪碧圖應(yīng)用-慕課網(wǎng) GitHub:https://github.com/BadW...
    waka閱讀 365評(píng)論 0 1
  • 雪碧圖的使用場(chǎng)景: 不推薦使用雪碧圖的地方: css Sprite(雪碧圖)的實(shí)現(xiàn)原理: 雪碧圖的實(shí)現(xiàn)方式: 作者...
    LaBaby_閱讀 618評(píng)論 0 0
  • 葉子是自然隨處可見(jiàn)的風(fēng)景景醇,無(wú)論塞北江南臀稚,甚至荒漠,它都有自己獨(dú)一無(wú)二的紋理三痰。聆聽(tīng)自然吧寺,我選擇聽(tīng)葉的聲音。 葉芽初綻...
    弗如無(wú)閱讀 1,015評(píng)論 2 4