婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解CSS玩轉(zhuǎn)圖片Base64編碼

詳解CSS玩轉(zhuǎn)圖片Base64編碼

熱門標(biāo)簽:南通電銷外呼系統(tǒng)軟件 洛陽防封卡外呼系統(tǒng)廠家 山東電銷機器人軟件 成都企業(yè)外呼系統(tǒng) 廣州防封電銷機器人廠家 智能語音電銷機器人客戶端 申請400電話移動 上海400電話辦理到易號網(wǎng) 常州電話外呼系統(tǒng)招商

什么是 base64 編碼?  

我不是來講概念的,直接切入正題,圖片的 base64 編碼就是可以將一副圖片數(shù)據(jù)編碼成一串字符串,使用該字符串代替圖像地址。

這樣做有什么意義呢?我們知道,我們所看到的網(wǎng)頁上的每一個圖片,都是需要消耗一個 http 請求下載而來的(所有才有了 csssprites 技術(shù)的應(yīng)運而生,但是 csssprites 有自身的局限性,下文會提到)。

沒錯,不管如何,圖片的下載始終都要向服務(wù)器發(fā)出請求,要是圖片的下載不用向服務(wù)器發(fā)出請求,而可以隨著 HTML 的下載同時下載到本地那就太好了,而 base64 正好能解決這個問題。

那么圖片的 base64 編碼長什么樣子呢?舉個栗子。www.google.com的首頁搜索框右側(cè)的搜索小圖標(biāo)使用的就是base64編碼。我們可以看到:

//在css里的寫法
#fkbx-spch, #fkbx-hspch {
  background: url(data:image/gif;base64,R0lGODlhHAAmAKIHAKqqqsvLy0hISObm5vf394uLiwAAAP///yH5B…EoqQqJKAIBaQOVKHAXr3t7txgBjboSvB8EpLoFZywOAo3LFE5lYs/QW9LT1TRk1V7S2xYJADs=) no-repeat center;
}
//在html代碼img標(biāo)簽里的寫法
img src="data:image/gif;base64,R0lGODlhHAAmAKIHAKqqqsvLy0hISObm5vf394uLiwAAAP///yH5B…EoqQqJKAIBaQOVKHAXr3t7txgBjboSvB8EpLoFZywOAo3LFE5lYs/QW9LT1TRk1V7S2xYJADs=">

上面分別是圖片的 base64 編碼在 css 里面的寫法和在 htmlimg> 標(biāo)簽里的寫法。base64 編碼長得就是這個樣子,當(dāng)然 base64 編碼不僅僅運用在圖片編碼,還可以:

thunder://QUFodHRwOi8vZG93bi5zYW5kYWkubmV0L3RodW5kZXI3L1RodW5kZXI3LjEuNS4yMTUyLmV4ZVpa(不要復(fù)制我我真的不是種子)

嘿嘿沒錯,迅雷的“專用地址”也是用 Base64 加密的,有興趣自行 google,不做贅述。

為什么要使用 Base64 編碼?  

那么為什么要使用 base64 傳輸圖片文件?上文也有提及,因為這樣可以節(jié)省一個 http 請求。圖片的 base64 編碼可以算是前端優(yōu)化的一環(huán)。效益雖小,但卻缺能積少成多。

說到這里,不得不提的是 CssSprites 技術(shù),后者也是為了減少 http 請求,而將頁面中許多細小的圖片合并為一張大圖。那么圖片的 base64 編碼和 CssSprites 有什么異同,又該如何取舍呢?

所以,在這里要明確使用 base64 的一個前提,那就是被 base64 編碼的圖片足夠尺寸小。以博客園的 logo 為例:

如圖所示,博客園的 Logo 只有 3.27KB,已經(jīng)很小了,但是如果將其制作轉(zhuǎn)化成 base64 編碼,生成的 base64 字符串編碼足足有 4406 個,也就是說,圖片被編碼之后,生成的字符串編碼大小一般而言都會比原文件稍大一些。即便 base64 編碼能夠被 gzip 壓縮,壓縮率能達到 50% 以上,想象一下,一個元素的 css 樣式編寫居然超過了 2000個 字符,那對 css 整體的可讀性將會造成十分大的影響,代碼的冗余使得在此使用 base64 編碼將得不償失。

那么,是不是表示 base64 編碼無用武之地呢?不然。當(dāng)頁面中的圖片滿足以下要求,base64 就能大顯生手。

如果圖片足夠小且因為用處的特殊性無法被制作成雪碧圖(CssSprites),在整個網(wǎng)站的復(fù)用性很高且基本不會被更新。

那么此時使用 base64 編碼傳輸圖片就可謂好鋼用在刀刃上,思前想后,符合這個規(guī)則的,有一個是我們經(jīng)常會遇到的,就是頁面的背景圖 background-image 。在很多地方,我們會制作一個很小的圖片大概是幾px*幾px,然后平鋪它頁面當(dāng)背景圖。因為是背景圖的緣故,所以無法將它放入雪碧圖,而它卻存在網(wǎng)站的很多頁面,這種圖片往往只有幾十字節(jié),卻需要一個 http 請求,十分不值得。那么此時將它轉(zhuǎn)化為 base64 編碼,何樂而不為?

下面是一個只有 50 字節(jié)的2*2的的背景圖。將其轉(zhuǎn)化成 base64 編碼,只有 100 多個字符,相比一個 http 請求,這種轉(zhuǎn)換無疑更值得推崇。

CssSprites與Base64編碼  

簡單陳述一下我對何時這使用這兩種優(yōu)化方法的看法。

使用CssSprites合并為一張大圖:

頁面具有多種風(fēng)格,需要換膚功能,可使用CssSprites

網(wǎng)站已經(jīng)趨于完美,不會再三天兩頭的改動(例如button大小、顏色等)

使用時無需重復(fù)圖形內(nèi)容

沒有 Base64 編碼成本,降低圖片更新的維護難度。(但注意 Sprites 同時修改 css 和圖片某些時候可能造成負擔(dān))

不會增加 CSS 文件體積

使用base64直接把圖片編碼成字符串寫入CSS文件:

無額外請求

對于極小或者極簡單圖片

可像單獨圖片一樣使用,比如背景圖片重復(fù)使用等

沒有跨域問題,無需考慮緩存、文件頭或者cookies問題

更便捷的將圖片轉(zhuǎn)化為Base64編碼  

將圖片轉(zhuǎn)化為 base64 編碼有許多工具,例如本文中我所使用的http://www.pjhome.net/web/html5/encodeDataUrl.htm,但是很多這些網(wǎng)站是國外網(wǎng)站,經(jīng)常被墻登陸不了。這里介紹一個更為快捷的方法,就是利用 Chrome 瀏覽器(我想 FEer 都應(yīng)該有Chrome 瀏覽器吧=。=)。

在 chrome 下新建一個窗口,然后把要轉(zhuǎn)化的圖片直接拖入瀏覽器,打開控制臺,點 Source,如下圖所示,點擊圖片,右側(cè)就會顯示該圖片的 base64 編碼,是不是很方便。

一些誤區(qū)

Base64 雖有優(yōu)點,但是缺點也很明顯,在使用上存在一些明顯的缺陷。

1. 使用 Base64 不代表性能優(yōu)化

是的,使用 Base64 的好處是能夠減少一個圖片的 HTTP 請求,然而,與之同時付出的代價則是 CSS 文件體積的增大。

而 CSS 文件體積的增大意味著什么呢?意味著 CRP 的阻塞。

CRP(Critical Rendering Path,關(guān)鍵渲染路徑):當(dāng)瀏覽器從服務(wù)器接收到一個HTML頁面的請求時,到屏幕上渲染出來要經(jīng)過很多個步驟。瀏覽器完成這一系列的運行,或者說渲染出來我們常常稱之為“關(guān)鍵渲染路徑”。

通俗而言,就是圖片不會導(dǎo)致關(guān)鍵渲染路徑的阻塞,而轉(zhuǎn)化為 Base64 的圖片大大增加了 CSS 文件的體積,CSS 文件的體積直接影響渲染,導(dǎo)致用戶會長時間注視空白屏幕。HTML 和 CSS 會阻塞渲染,而圖片不會。

2. 頁面解析 CSS 生成的 CSSOM 時間增加

Base64 跟 CSS 混在一起,大大增加了瀏覽器需要解析CSS樹的耗時。其實解析CSS樹的過程是很快的,一般在幾十微妙到幾毫秒之間。

CSS 對象模型 (CSSOM):CSSOM是一個建立在web頁面上的 CSS 樣式的映射,它和DOM類似,但是只針對CSS而不是HTML。

CSSOM 生成過程:

CSSOM 生成過程大致是,解析 HTML ,在文檔的 head 部分遇到了一個 link 標(biāo)記,該標(biāo)記引用一個外部 CSS 樣式表,下載該樣式表后根據(jù)上述過程生成 CSSOM 樹。這里我們要知道的是,CSSOM 阻止任何東西渲染,(意味著在CSS沒處理好之前所有東西都不會展示),而如果CSS文件中混入了Base64,那么(因為文件體積的大幅增長)解析時間會增長到十倍以上。

而且,最重要的是,增加的解析時間全部都在關(guān)鍵渲染路徑上。

所以,當(dāng)我們需要使用到 Base64 技術(shù)的時,一定要意識到上述的問題,有取舍的進行使用。

以上就是詳解CSS玩轉(zhuǎn)圖片Base64編碼的詳細內(nèi)容,更多關(guān)于CSS玩轉(zhuǎn)圖片Base64編碼的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • js css3實現(xiàn)圖片拖拽效果
  • 原生js和css實現(xiàn)圖片輪播效果
  • 利用CSS、JavaScript及Ajax實現(xiàn)圖片預(yù)加載的三大方法
  • BootStrap 圖片樣式、輔助類樣式和CSS組件的實例詳解
  • 利用CSS、JavaScript及Ajax實現(xiàn)圖片預(yù)加載的方法
  • 基于cssSlidy.js插件實現(xiàn)響應(yīng)式手機圖片輪播效果
  • 詳解CSS不定寬溢出文本適配滾動
  • 如何在CSS中繪制曲線圖形及展示動畫
  • 詳解盒子端CSS動畫性能提升

標(biāo)簽:萊蕪 邵陽 滄州 貴州 廣安 鶴壁 混顯 賀州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解CSS玩轉(zhuǎn)圖片Base64編碼》,本文關(guān)鍵詞  詳解,CSS,玩轉(zhuǎn),圖片,Base64,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解CSS玩轉(zhuǎn)圖片Base64編碼》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解CSS玩轉(zhuǎn)圖片Base64編碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    不卡一区在线观看| 日韩欧美一二三| 日韩一区二区三区在线视频| 国产精品亲子乱子伦xxxx裸| 亚洲一区二区在线免费看| 久久99精品久久久久| 欧美午夜视频网站| 亚洲国产电影在线观看| 日韩精品视频网| 色哟哟一区二区在线观看| 欧美精品一区二区三区蜜桃视频| 136国产福利精品导航| 国产成人精品免费| 精品日产卡一卡二卡麻豆| 性久久久久久久久久久久| 91日韩在线专区| 国产精品妹子av| 激情成人综合网| 精品国产1区2区3区| 日韩在线一区二区| 制服丝袜国产精品| 日韩中文字幕91| 欧美精品高清视频| 婷婷久久综合九色综合绿巨人| 91免费视频网址| 国产精品国产自产拍在线| 国产盗摄女厕一区二区三区| 欧美大片国产精品| 美女网站色91| 久久夜色精品国产噜噜av| 久久av中文字幕片| 精品国产自在久精品国产| 九九精品视频在线看| 日韩欧美色电影| 久久99国产精品久久99果冻传媒| 51精品久久久久久久蜜臀| 日本在线不卡视频| 日韩精品资源二区在线| 国产乱色国产精品免费视频| 久久久久久久久97黄色工厂| 国产成人精品综合在线观看| 国产精品毛片高清在线完整版| 成人丝袜高跟foot| 亚洲精品一二三| 欧美亚洲一区二区三区四区| 亚洲高清视频中文字幕| 91精品免费在线| 九九久久精品视频| 国产精品麻豆视频| 在线看国产日韩| 日日夜夜免费精品| 久久久久成人黄色影片| av午夜一区麻豆| 婷婷开心久久网| 久久久噜噜噜久久人人看| 成人免费高清视频| 亚洲狼人国产精品| 日韩午夜在线影院| 成人短视频下载| 日韩和欧美的一区| 国产色综合一区| 色婷婷国产精品| 免费观看在线综合色| 国产三级一区二区| 一本久道中文字幕精品亚洲嫩| 亚洲韩国精品一区| 欧美大黄免费观看| 99久久99久久免费精品蜜臀| 亚洲成a人片综合在线| 久久久激情视频| 欧美偷拍一区二区| 国产超碰在线一区| 日韩电影在线一区| 亚洲美女在线一区| 久久久久久久综合日本| 欧美日韩成人在线| 成人性生交大片免费看视频在线| 亚洲国产成人精品视频| 日本一区二区成人在线| 91精品婷婷国产综合久久性色| 99久久久无码国产精品| 久久99久久99| 香蕉乱码成人久久天堂爱免费| 国产精品视频一二| 精品久久久久久亚洲综合网| 日本韩国欧美一区二区三区| 国产一区二三区| 热久久国产精品| 亚洲一区二区三区不卡国产欧美| 久久精品男人天堂av| 日韩一区二区三区免费观看| 91成人在线免费观看| 国产不卡一区视频| 韩国在线一区二区| 青青草国产成人99久久| 婷婷激情综合网| 一区二区三区在线观看国产| 国产精品久久久久7777按摩| 久久久久久久久岛国免费| 日韩欧美成人一区| 69堂精品视频| 欧美在线观看视频一区二区三区| hitomi一区二区三区精品| 国产成人在线免费| 国产一区二区在线视频| 蓝色福利精品导航| 免费在线观看一区二区三区| 日韩精品三区四区| 日本va欧美va精品发布| 日本午夜一本久久久综合| 午夜久久久久久久久久一区二区| 亚洲一级片在线观看| 五月婷婷欧美视频| 丝袜a∨在线一区二区三区不卡| 五月婷婷欧美视频| 日本欧美一区二区三区| 美女高潮久久久| 韩国在线一区二区| 丁香天五香天堂综合| 成人午夜伦理影院| 一本久久a久久免费精品不卡| 色成人在线视频| 欧美日韩在线一区二区| 777久久久精品| 欧美成人一区二区三区在线观看| 日韩精品综合一本久道在线视频| 精品成人私密视频| 中文字幕 久热精品 视频在线| 国产精品欧美久久久久无广告| 最新中文字幕一区二区三区| 亚洲精品久久嫩草网站秘色| 亚洲成人高清在线| 蜜桃久久av一区| 成人免费的视频| 欧美午夜宅男影院| 日韩美女视频一区二区在线观看| 欧美激情一区二区三区全黄| 亚洲免费观看高清完整版在线观看 | 精品人伦一区二区色婷婷| 精品国产一区二区在线观看| 欧美高清在线精品一区| 亚洲国产精品久久久男人的天堂 | 国产一区二区福利视频| 成人久久视频在线观看| 日本电影欧美片| 精品嫩草影院久久| 亚洲欧美日韩久久| 裸体健美xxxx欧美裸体表演| 国产乱码精品1区2区3区| jlzzjlzz亚洲日本少妇| 91精品欧美福利在线观看| 国产欧美久久久精品影院| 亚洲制服丝袜av| 国产精品亚洲一区二区三区妖精 | 色综合色综合色综合| 欧美一卡二卡在线| 亚洲欧洲av色图| 蜜臀精品一区二区三区在线观看 | 日韩在线一区二区三区| 成人午夜激情在线| 欧美一二区视频| 亚洲黄色片在线观看| 国产综合成人久久大片91| 欧美怡红院视频| 日本一区免费视频| 国内成人精品2018免费看| 91国偷自产一区二区使用方法| 久久久91精品国产一区二区精品 | 国产综合久久久久影院| 欧美视频中文字幕| 自拍偷在线精品自拍偷无码专区 | 亚洲国产精品精华液ab| 日韩 欧美一区二区三区| 91麻豆自制传媒国产之光| 久久精品欧美一区二区三区麻豆| 三级在线观看一区二区| 欧美在线观看一二区| 国产精品久久久一本精品| 久久超级碰视频| 欧美一区二区三区免费在线看| 亚洲欧美日韩国产手机在线| 成人妖精视频yjsp地址| 国产喂奶挤奶一区二区三区| 紧缚奴在线一区二区三区| 欧美日韩电影在线| 亚洲一区二区三区四区的| 91精彩视频在线| 亚洲毛片av在线| 91黄色免费版| 亚洲日本欧美天堂| 色婷婷久久久久swag精品| 亚洲男人的天堂在线观看| 成人av一区二区三区| 国产精品电影院| 99精品久久99久久久久| 亚洲视频在线观看一区| 色综合久久88色综合天天免费| 亚洲精品乱码久久久久| 欧美日韩午夜在线视频| 亚洲一区二区av电影|