欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 網站建設 > 建站知識 > 談談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
欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    不卡的电影网站| 欧美色视频一区| 2021国产精品久久精品| 视频一区在线视频| av av在线| 91精品久久久久久蜜臀| 亚洲成人激情社区| 久久精品女同亚洲女同13| 欧美日韩精品一区二区| 国产乱人伦精品一区二区在线观看 | av影片在线播放| 一本久久a久久精品亚洲| 国产精品伦理在线| 成人毛片视频在线观看| 四虎免费在线视频| 亚洲激情六月丁香| 少妇精品无码一区二区| 欧美蜜桃一区二区三区| 午夜精品视频在线观看| 亚洲中文字幕无码av| 精品少妇一区二区三区免费观看| 日本不卡视频一二三区| 亚洲一区二区三区日韩| 国产亚洲综合性久久久影院| 国产精品夜夜嗨| 色综合天天做天天爱| 一区二区在线观看免费| 在线看黄色的网站| 精品欧美乱码久久久久久1区2区| 狠狠色综合播放一区二区| 国产精品18在线| 亚洲免费视频中文字幕| 污污免费在线观看| 欧美电影免费观看高清完整版在线| 久久电影网电视剧免费观看| 自拍偷拍第9页| 亚洲欧美日韩中文字幕一区二区三区| 国产精品91av| 日韩欧美高清一区| 国产精品亚洲第一区在线暖暖韩国 | 国产精品视频观看| 国产精品影音先锋| 久久视频一区二区三区| 国产精品久久免费看| 国产精品资源网| 女性裸体视频网站| 亚洲欧洲国产专区| av在线免费观看不卡| www.4hu95.com四虎| 午夜剧场免费看| 精品成人私密视频| 成人午夜视频在线| 欧美精品 国产精品| 国精产品一区一区三区mba视频| 欧美老熟妇一区二区三区| 亚洲国产精品一区二区久久 | 亚洲激情图片一区| 双性尿奴穿贞c带憋尿| 国产精品婷婷午夜在线观看| 日批视频免费看| 久久久三级国产网站| 免费看的av网站| 久久综合久久综合九色| 不卡一区二区在线| 日韩免费看的电影| av在线这里只有精品| 日韩精品资源二区在线| av在线不卡观看免费观看| 欧美tickle裸体挠脚心vk| 99麻豆久久久国产精品免费优播| 91精品国产综合久久久久久漫画 | 久久亚洲综合av| a在线播放不卡| 欧美v日韩v国产v| 97久久精品人人做人人爽50路| 日韩免费观看高清完整版在线观看| 国产91丝袜在线播放九色| 欧美肥妇free| 不卡一区中文字幕| 久久综合色播五月| 色哟哟无码精品一区二区三区| 欧美国产1区2区| 亚洲成人av免费在线观看| 1区2区3区精品视频| 一区二区三区伦理片| 亚洲综合激情另类小说区| 日本免费网站视频| 日本中文字幕一区二区视频 | 久久99深爱久久99精品| 欧美色国产精品| 丰满放荡岳乱妇91ww| 欧美xxxx老人做受| 波多野结衣视频播放| 亚洲三级电影全部在线观看高清| 一区二区三区在线观看免费视频| 午夜久久电影网| 欧美性一区二区| 成人禁用看黄a在线| 久久色在线视频| 狠狠人妻久久久久久综合蜜桃| 亚洲男女毛片无遮挡| 国产免费久久久久| 国产一区二区在线视频| 日韩欧美成人激情| 少妇精品无码一区二区三区| 亚洲免费观看高清完整版在线观看| 亚洲国产123| 国产一区二区精品久久91| 欧美tickling挠脚心丨vk| 91精品国产自产| 午夜精品在线视频一区| 欧美日韩一区不卡| 性生活在线视频| 亚洲激情综合网| 欧美在线综合视频| 99精品桃花视频在线观看| 亚洲国产高清aⅴ视频| 欧美色视频一区二区三区在线观看| 精品一区二区三区在线播放视频| 日韩一级完整毛片| 亚洲色图14p| 奇米影视7777精品一区二区| 5566中文字幕一区二区电影 | 亚洲国产综合av| 中文字幕一区二区三| 亚洲一级生活片| 成人免费视频一区二区| 国产精品理论片| 色悠久久久久综合欧美99| 成人av免费在线观看| 中文字幕日韩精品一区| 1024手机在线视频| 91丨porny丨蝌蚪视频| 一区二区三区产品免费精品久久75| 在线精品视频一区二区三四| 91人妻一区二区三区| 亚洲国产欧美在线| 91精品国产综合久久蜜臀| 人妻精品久久久久中文字幕| 久久精品国产亚洲高清剧情介绍| 精品国产99国产精品| 日韩一级片在线免费观看| 国产盗摄精品一区二区三区在线| 中日韩免费视频中文字幕| 国产大学生自拍| 香蕉久久久久久av成人| 午夜精品影院在线观看| 精品国产髙清在线看国产毛片| 蜜桃av免费在线观看| 成人免费不卡视频| 夜夜嗨av一区二区三区中文字幕 | 欧美色视频一区| 成人免费毛片日本片视频| 蜜臀a∨国产成人精品| 国产日韩欧美制服另类| 国产精品国产精品88| 久久久久久无码精品人妻一区二区| 亚洲成人激情自拍| 久久综合丝袜日本网| 色综合天天综合狠狠| 婷婷五月精品中文字幕| 国内成+人亚洲+欧美+综合在线| 日本一区二区久久| 欧美三级电影网| 成人免费无遮挡无码黄漫视频| 国产精选一区二区三区| 亚洲男同性恋视频| 日韩精品中文字幕一区二区三区 | 欧美国产日产图区| 欧美在线不卡视频| 给我看免费高清在线观看| 国产精品资源在线观看| 亚洲综合另类小说| 精品国产3级a| 色综合久久天天综合网| chinese麻豆新拍video| 国产精品1区2区3区| 亚洲一级片在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 中文字幕人妻一区二| 亚洲成av人片在线观看无| 国产精品一级在线| 亚洲v中文字幕| 欧美国产成人精品| 欧美一级电影网站| www.毛片com| 国产精品九九九九九| 不卡大黄网站免费看| 日本不卡1234视频| 日韩理论片一区二区| 欧美草草影院在线视频| 91豆麻精品91久久久久久| xxx在线播放| 久久久久久久久蜜桃| 欧美乱熟臀69xxxxxx| 成人做爰视频网站| brazzers精品成人一区| 91麻豆6部合集magnet| 老汉av免费一区二区三区| 一区二区三区久久久|