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

主頁 > 網站建設 > 建站知識 > 談談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
校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
日本一区二区久久| 国产精品456露脸| 亚洲电影你懂得| 尤物在线观看一区| 亚洲美女视频在线| 综合分类小说区另类春色亚洲小说欧美 | 亚洲bdsm女犯bdsm网站| 亚洲激情第一区| 性欧美大战久久久久久久久| 午夜视频一区在线观看| 日韩精品成人一区二区三区| 日本午夜一本久久久综合| 免费不卡在线视频| 国产麻豆欧美日韩一区| 成人美女视频在线观看| 91麻豆精品一区二区三区| 欧美性受xxxx黑人xyx性爽| 精品污污网站免费看| 91精品黄色片免费大全| 欧美刺激午夜性久久久久久久| 日韩精品中文字幕一区二区三区 | 欧美成人video| 久久综合色综合88| 中文字幕不卡的av| 亚洲视频香蕉人妖| 日日夜夜免费精品| 久久狠狠亚洲综合| 国产传媒日韩欧美成人| 91丨porny丨首页| 88在线观看91蜜桃国自产| 日韩一卡二卡三卡四卡| 日本一区二区三区在线观看| 亚洲欧美日韩在线| 毛片不卡一区二区| 丁香天五香天堂综合| 色偷偷久久一区二区三区| 日韩一级精品视频在线观看| 国产日韩三级在线| 一区二区免费在线| 精品一区二区av| 99久久精品一区| 欧美一区二区免费视频| 国产精品视频一二三区| 亚洲国产精品人人做人人爽| 精品亚洲成av人在线观看| 99久久精品国产一区| 日韩欧美不卡在线观看视频| 国产精品久久影院| 天天综合网天天综合色| 成人国产一区二区三区精品| 在线成人免费视频| 中文字幕乱码日本亚洲一区二区| 亚洲香蕉伊在人在线观| 国产高清不卡一区| 欧美日本在线观看| 国产精品久久毛片av大全日韩| 午夜婷婷国产麻豆精品| 国产a视频精品免费观看| 欧美精品欧美精品系列| 国产精品天天摸av网| 婷婷久久综合九色综合绿巨人| 成人污视频在线观看| 日韩欧美亚洲国产精品字幕久久久| 国产精品久久久久久久久免费桃花 | 色8久久人人97超碰香蕉987| wwwwww.欧美系列| 亚洲高清视频中文字幕| 成人午夜免费av| 日韩三级中文字幕| 亚洲一区二区三区视频在线| 丁香桃色午夜亚洲一区二区三区| 日韩一区二区三区在线观看| 一区二区三区日本| 丁香天五香天堂综合| 欧美mv日韩mv国产网站| 婷婷成人综合网| 欧美午夜免费电影| 亚洲精品五月天| 成人性生交大合| 精品国产91乱码一区二区三区 | 日韩影院免费视频| 欧美性色综合网| 亚洲人成在线播放网站岛国| 国产高清久久久久| 久久久久久久综合| 久久精品国产一区二区三 | 制服视频三区第一页精品| 亚洲精品国产成人久久av盗摄| 国产福利一区二区| 精品剧情在线观看| 麻豆中文一区二区| 欧美一级在线观看| 日本中文字幕不卡| 69久久99精品久久久久婷婷 | 国产成人在线视频免费播放| 2020国产精品久久精品美国| 久久超碰97人人做人人爱| 日韩女优制服丝袜电影| 日本欧美久久久久免费播放网| 在线不卡免费欧美| 日本怡春院一区二区| 欧美精品一级二级三级| 日韩激情一区二区| 日韩一区二区三区精品视频| 免费成人你懂的| 欧美tk—视频vk| 精品一区二区三区免费播放| 久久美女艺术照精彩视频福利播放| 六月丁香婷婷久久| 久久这里只有精品视频网| 国产白丝精品91爽爽久久| 欧美激情在线一区二区三区| www.成人在线| 亚洲综合男人的天堂| 在线精品国精品国产尤物884a | 在线免费亚洲电影| 性久久久久久久久久久久| 91精品国产91久久综合桃花| 捆绑紧缚一区二区三区视频| 2021久久国产精品不只是精品| 国产精品91一区二区| 中文无字幕一区二区三区| 99精品视频在线观看免费| 亚洲在线一区二区三区| 欧美一卡2卡三卡4卡5免费| 狠狠色综合播放一区二区| 中文字幕欧美日韩一区| 在线观看免费视频综合| 欧美96一区二区免费视频| 国产亚洲综合在线| 91农村精品一区二区在线| 亚洲国产日韩一级| 日韩美女在线视频| 国产成人av电影在线| 一区二区三区在线影院| 日韩欧美一级二级三级久久久| 国产成人啪午夜精品网站男同| 亚洲欧美国产毛片在线| 91麻豆精品国产| 国产999精品久久久久久| 一区二区三区四区不卡视频| 日韩亚洲欧美中文三级| 国产91高潮流白浆在线麻豆| 亚洲午夜日本在线观看| 欧美α欧美αv大片| 91免费精品国自产拍在线不卡| 日韩高清欧美激情| 国产欧美日韩在线| 欧洲av一区二区嗯嗯嗯啊| 国产一区在线观看麻豆| 亚洲精品国产一区二区精华液 | 国产欧美一区二区精品性色超碰 | 亚洲精品日韩综合观看成人91| 91精品国产乱码久久蜜臀| www.亚洲色图| 蜜桃久久久久久| 一区二区三区中文在线观看| 337p粉嫩大胆色噜噜噜噜亚洲| 91丨porny丨国产| 国产一区二区福利| 午夜伦欧美伦电影理论片| 国产精品三级av| 日韩一区二区三区高清免费看看 | 久久无码av三级| 欧美午夜片在线看| 北条麻妃国产九九精品视频| 美女国产一区二区三区| 亚洲人成网站影音先锋播放| 久久综合久久综合九色| 欧美日韩精品一区二区三区蜜桃| 国产a久久麻豆| 激情综合色播五月| 午夜欧美电影在线观看| 1000部国产精品成人观看| 337p粉嫩大胆色噜噜噜噜亚洲 | 亚洲精品欧美综合四区| 国产欧美一区二区三区沐欲| 日韩视频免费直播| 欧美性大战xxxxx久久久| 成人91在线观看| 国产呦精品一区二区三区网站| 亚洲一区二区精品视频| 亚洲欧洲精品一区二区三区 | 免费高清在线一区| 亚洲图片有声小说| 亚洲精品国产精华液| 亚洲欧洲日韩女同| 国产欧美日韩三级| 欧美精品一区二区三区四区| 91麻豆精品国产综合久久久久久 | 亚洲精品乱码久久久久| 国产精品乱码人人做人人爱| 久久久久9999亚洲精品| 日韩女优毛片在线| 91精品国产91热久久久做人人 | 亚洲色图制服诱惑 | 亚洲va在线va天堂| 亚洲综合色自拍一区| 一二三区精品视频| 亚洲精品视频免费看|