校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 網站建設 > 建站知識 > 談談CSS Sprites技術及其優化

談談CSS Sprites技術及其優化

POST TIME:2020-04-10 17:00

CSSSprites技術對于廣大的前端工程師來說應該是一點也不陌生。這個被國內開發者昵稱為CSS精靈CSS雪碧的家伙到底解決了什么問題,我們又怎樣合理使用這個技術呢?下面讓我們詳細的聊聊。

在大家還在撥號上網的“遠古時期”,由于網速的限制,頁面開發者都喜歡把網頁里面的圖片字節數控制的非常小,往往在一個圖片文件夾里散落著n多的小 碎圖。隨著網絡技術的發展,網速的提升,大家越來越重視頁面的加載速度,頁面效率問題,過去的那些小圖便成為了前端開發者的眼中釘,因為每加載一張圖片都 會產生一次瀏覽器請求數,發起的請求數越多那么頁面加載的速度也越慢。還有當頁面加載時,圖片一個個的零星顯示,鼠標經過時候背景閃白等也都是我們不能忍 受的。于是乎將頁面中的背景圖整合到一起,利用“background- image”,“background-repeat”,“background-position”的組合進行背景定位的技術被廣泛使用與了頁面構建 中,這就是CSSSprites。當然CSSSprites技術也存在著維護不便,內存占用大等等的缺點。

好了,如果我只說這些,那么這篇文章就有點太水了。前面那些只是對CSSSprites技術的一個普及。作為一個開發者我們應該對它有一個更全面的認識,挖掘深度內容,這樣才能有利于我們效率開發,團隊協作。

頭疼的多人拼圖游戲

使用CSSSprites,就好像玩拼圖游戲一樣。一張白畫布,那么多圖怎么放到里面去才會完美?這是個讓人糾結的事。而且在實際在工作場景中, 我們面臨著項目開發時間緊張,UI設計圖要分期提供,多人協同開發一個項目等等問題。這些問題非常容易讓我們在大項目中迷失,造成CSS拼圖混亂,維護及 其困難的情況。

定好規則,其實拼圖也挺好玩的

先期的準備工作

應對一個項目后期維護成本大的問題,我們最好的解決方案就是在開始前制定一系列的規范來限制問題的產品。好的開始是成功的一半。對于 CSSSprites,在項目開始前,我們要充分認識一個產品,同UI設計師做好良好的溝通,對我們未來組成我們Sprites圖的各個元素有個大體的 概念,比如我們的背景拼圖可能包括什么。

一個好的Sprite畫布是必須的

網頁設計里面,Grid系統是必不可少的,好的Grid能解決我們很多排版問題。Grid系統同樣適用于CSSSprites。我們需要創建好一個優秀的畫板,剩下的工作就是將元素合理的置于畫板中了。

這張是我準備的一張CSSSprites畫布,我們將在這個PSD里面組合項目中的圖片。

這張畫布是由20px*20px像素的格子組成。這個格子基本上由項目決定的,當我們同UI設計師溝通了解這個項目最多的為16px*16px圖標時。我們就可以采用這種Grid尺寸為畫布了。

Sprites畫布有了,接下來就是對圖標進行分組了

對于信息的歸納總結、分類是一個有意思的事情。就拿圖標來說,我們就可以根據圖標功能,尺寸等等作為信息維度進行歸納。其實無論怎么歸納,都是可以的,只是記得我們以一個方向作為標準就可以了。

下圖是根據微博站外某組件完成的CSSSprites

根據設計,我們了解在這個頁面,需要將圖片元素根據功能分為4個維度,即微博品牌展示元素、提交按鈕、操作類小按鈕、提示類ICON。于是我將畫布 X軸坐標方向每5個格(其實完全可以10個格或者更多)劃分為一個區域,每個這樣一個區域的Y軸方向不再劃分區域,這樣做的目的是為了以后增加圖標的擴展 性。于是我們可以非常快速得到一個圖標的坐標了。比如不可用的灰色的分享按鈕X坐標=5*20px=100pxY坐 標=7*20px=140px;那么我們就取得了這個圖標的位置即background-position:-100px-140px。如果抽象成 為公式的話,我們設置一個單元格的寬度為變量n。X坐標值Gx,Y坐標值Gy。那么畫布中的元素css背景即為:background- position:-Gx*npx–Gy*npx了。

現在圖有了,怎么取圖也是關鍵

因為圖片盡可能的被整合到一張拼圖,所以我們需要在頁面使用圖片的位置使用空標簽定位的方式將拼圖所需展現的部分展示到頁面中。

<spanclass=”iconA”></span>

.iconA{display:inline-block;height:16px;width:16px;background:url(icons.png)-20px-20pxno-repeat}

項目出現二期需求了,需要增加圖標?

需求總是不能控制,我們要盡可能的為未來增加圖片做好打算。在剛才的例子的項目里后期產品需要增加圖標,于是:

我們可以繼續在對應的圖區內增加對應的圖標。但是這個例子同樣暴露了一個缺陷,如果新增一個按鈕區域大于5n(100px),我們的圖區不足以承 載。這時候我們可以同產品,設計師溝通協調,商議是否可以取消過大的按鈕設計。如果需求一定,那我們只能沿著X軸方向繼續擴展畫布。不過,我們也需要注意 無限的放大一張畫布,同樣會造成對頁面效率的影響。

及時的制定好規范,記錄好修改日志

可能在項目的初期,我們還來不及制定合圖的具體規范,在項目中我們會遇到各種各樣的問題。及時的總結,維護整張CSS拼圖,在拼圖的PSD或者PNG(使用Fireworks)做好注釋,方便他人開發。拼合好的圖片提交到svn時也寫明log內容,這樣便日后查詢。

我們最終的目的

其實CSSSprites經過了那么多年的演變,前端開發者不斷的優化,都是為了提升頁面效率,提升團隊開發效率,減少開發維護成本而努力。配合 最近非常流行的將CSS動態語言化(如SASSLESS等),增加入變量,繼承,運算,函數等。CSSSprites會變的更好玩,會減少更多 的開發維護成本。甚至我們在“面向對象”的模塊開發方式中,還可以使用一個類的的同一個backgroud-position:(xy)值,在不同的頁 面通過引用不同的圖片(background屬性)實現將一個頁面內圖片請求量進一步減少的目的。隨著高級瀏覽器的普及我們還可以多使用CSS3屬性,減 少漸變背景圖的使用,將純色ICON制作成字體取代拼圖等我們能更大程度上減少圖片的使用量。這篇文章只是拋磚引玉。實際上還有很多關于 CSSSprites的方法,還有眾多的拼圖生成工具。

說了那么多,我們如果在日常的開發中,只要我們多注意總結,敢于創新,敢于制定規范,那么再小的事也能干的很漂亮,對于CSSSprites的優化就是這么一個例子,你說不是么?



收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266
校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
欧美一区二区女人| 91成人看片片| 成人一区二区视频| 粉嫩欧美一区二区三区高清影视| 精品一区二区三区视频在线观看| 蜜乳av一区二区三区| 91日韩精品一区| 久久久久久亚洲综合影院红桃 | 日韩av网站免费在线| 成人免费福利片| 日韩一级片网址| 亚洲电影在线播放| 一本一道波多野结衣一区二区| 日本福利一区二区| 久久精品视频一区二区| 亚洲一级不卡视频| 成人三级伦理片| 制服丝袜亚洲播放| 《视频一区视频二区| 男人的天堂久久精品| 91在线观看地址| 久久久三级国产网站| 丝袜亚洲另类欧美| 在线精品亚洲一区二区不卡| 欧美精品在线观看播放| 久久久综合九色合综国产精品| 亚洲一区二区欧美| 懂色av噜噜一区二区三区av| 欧美日韩精品一区二区三区 | 国产三级一区二区三区| 日韩va亚洲va欧美va久久| 在线精品视频免费播放| 亚洲免费毛片网站| 在线看国产一区二区| 中文欧美字幕免费| 久久99久久99精品免视看婷婷| 欧美日韩中文精品| 日本中文字幕一区| 久久综合给合久久狠狠狠97色69| 免费人成在线不卡| 久久嫩草精品久久久精品| 成人午夜碰碰视频| 亚洲中国最大av网站| 91精品国产色综合久久不卡蜜臀| 青青草国产精品97视觉盛宴| 欧美日韩一二三| 国产一区二区不卡| 亚洲人成在线观看一区二区| 在线亚洲精品福利网址导航| 亚洲va天堂va国产va久| 久久精品一区二区| 日韩成人av影视| 国产成人午夜电影网| 欧美国产综合一区二区| 日韩欧美国产电影| 日韩免费高清av| 国产亚洲欧美一级| 国产日产欧美一区| 精品少妇一区二区| 91福利精品第一导航| 国产精品中文字幕欧美| 亚洲国产精品综合小说图片区| 欧美电影免费观看高清完整版在线| 成人精品免费看| 日日夜夜精品视频天天综合网| 精品日韩av一区二区| 在线观看日韩av先锋影音电影院| 秋霞影院一区二区| 夜夜揉揉日日人人青青一国产精品 | 国产精品色婷婷久久58| 欧美日韩综合不卡| 成人h精品动漫一区二区三区| 奇米777欧美一区二区| 亚洲美女免费在线| 亚洲欧美色图小说| 日韩毛片视频在线看| 欧美丰满少妇xxxxx高潮对白| 国内精品国产成人| 午夜欧美在线一二页| 亚洲国产日韩一区二区| 亚洲香蕉伊在人在线观| 一区二区成人在线| 亚洲另类在线视频| 亚洲成人1区2区| 日本少妇一区二区| 天堂va蜜桃一区二区三区| 亚洲三级免费电影| 日韩av电影免费观看高清完整版| 久久久午夜电影| 精品国产伦理网| 国产拍欧美日韩视频二区| 国产亚洲综合av| 亚洲天堂免费在线观看视频| 亚洲精品水蜜桃| 香蕉久久夜色精品国产使用方法 | 日韩欧美资源站| 国产欧美一区二区在线观看| 国产农村妇女毛片精品久久麻豆| 亚洲精品日韩一| 久久国产人妖系列| 884aa四虎影成人精品一区| 亚洲欧美色一区| 99麻豆久久久国产精品免费优播| 日韩欧美国产三级电影视频| 亚洲超丰满肉感bbw| 欧美日韩专区在线| 偷拍自拍另类欧美| 午夜久久电影网| 成人视屏免费看| 久久久国产精品麻豆| 亚洲理论在线观看| youjizz久久| 国产精品丝袜一区| 成人一道本在线| 欧美韩国日本综合| 国产激情91久久精品导航| 日韩写真欧美这视频| 三级在线观看一区二区| 欧美日韩国产成人在线91| 亚洲综合小说图片| 欧美视频在线观看一区二区| 久久精品人人做人人爽人人| 蜜桃视频第一区免费观看| 成人av网站免费观看| 中文字幕精品—区二区四季| 成人一区在线观看| 一区二区三国产精华液| 色噜噜夜夜夜综合网| 香港成人在线视频| 欧美亚洲免费在线一区| 亚洲欧洲www| 欧美一区二区三区性视频| 国产伦精品一区二区三区免费迷| 亚洲精品成a人| 欧美国产精品一区二区三区| 欧美一区午夜视频在线观看| 91日韩在线专区| proumb性欧美在线观看| 激情综合一区二区三区| 亚洲午夜在线视频| 亚洲猫色日本管| 国产精品伦理一区二区| 国产日产欧产精品推荐色| 欧美图片一区二区三区| 欧美日韩一区 二区 三区 久久精品| caoporn国产一区二区| 国产a视频精品免费观看| 国产毛片精品国产一区二区三区| 亚洲成人精品影院| 亚洲国产乱码最新视频| 日韩成人午夜电影| 国产精品一区二区在线观看网站| 裸体一区二区三区| 国产精品亚洲午夜一区二区三区 | 麻豆91在线观看| 久久国产精品色| 成人综合婷婷国产精品久久免费| 丁香激情综合五月| 色天天综合色天天久久| 日韩一区二区三区av| 精品国产91乱码一区二区三区| 亚洲精品国产a| 国产真实精品久久二三区| 99久久亚洲一区二区三区青草| 91丨porny丨蝌蚪视频| 欧美性一二三区| 国产亚洲短视频| 国产一区二区中文字幕| 一本久久a久久精品亚洲| 欧美精品久久一区二区三区| 精品国产1区2区3区| 一片黄亚洲嫩模| 成人的网站免费观看| 色悠久久久久综合欧美99| 精品国产乱码久久久久久老虎 | 欧美极品另类videosde| 欧美白人最猛性xxxxx69交| 亚洲天堂2016| 一个色妞综合视频在线观看| 久久国产精品无码网站| 色综合久久久久综合99| 欧美电影免费观看高清完整版| 中文字幕欧美一区| 国产一区二区三区精品视频| 欧美色精品天天在线观看视频| 国产日韩欧美电影| 国产乱码精品1区2区3区| 日韩欧美电影一二三| 免费亚洲电影在线| 欧美一二三在线| 奇米影视一区二区三区| 欧美日韩不卡视频| 亚洲乱码中文字幕综合| 国产精品一级片在线观看| 色综合天天天天做夜夜夜夜做| 国产色综合久久| 国产乱子轮精品视频| 久久综合九色综合97婷婷女人| 日韩精品久久久久久| 欧美三级电影一区|