什么是精靈圖呢?先來(lái)看一個(gè)案例——在這個(gè)頁(yè)面中,使用到了各種各樣的小圖片。

如何在頁(yè)面中插入這些小圖片呢?你的思維慣性,一定是應(yīng)用 img" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁(yè) > 營(yíng)銷(xiāo)資訊 > 網(wǎng)站運(yùn)營(yíng) > 零基礎(chǔ)教你學(xué)前端——73、CSS精靈圖

零基礎(chǔ)教你學(xué)前端——73、CSS精靈圖

時(shí)間:2023-07-06 15:48:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)

時(shí)間:2023-07-06 15:48:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)

零基礎(chǔ)教你學(xué)前端——73、CSS精靈圖:我們學(xué)習(xí)CSS背景的應(yīng)用——CSS 精靈圖。

什么是精靈圖呢?先來(lái)看一個(gè)案例——在這個(gè)頁(yè)面中,使用到了各種各樣的小圖片。

如何在頁(yè)面中插入這些小圖片呢?你的思維慣性,一定是應(yīng)用 img 或者 background-image 來(lái)實(shí)現(xiàn)。大家思考一下,如果頁(yè)面中只有幾個(gè)簡(jiǎn)單的圖片素材,我們可以采用 img 元素來(lái)引入圖片,可是當(dāng)網(wǎng)站圖片過(guò)多的時(shí)候,一張圖片一張圖片的引入,就顯得不方便了。

最重要的是,每張圖片的顯示,都是由瀏覽器發(fā)送請(qǐng)求,通過(guò)互聯(lián)網(wǎng),服務(wù)器接收到請(qǐng)求后,再通過(guò)互聯(lián)網(wǎng),返回請(qǐng)求內(nèi)容。如果一個(gè)頁(yè)面里有上百?gòu)垐D片,哪怕是很小的圖標(biāo),都需要經(jīng)歷一次這樣的過(guò)程。毋庸置疑,因?yàn)檎?qǐng)求網(wǎng)絡(luò)資源過(guò)于頻繁,整個(gè)頁(yè)面的加載速度就會(huì)變慢。

此時(shí),我們就可以使用精靈圖技術(shù)來(lái)解決這個(gè)問(wèn)題了!

精靈圖,也稱雪碧圖、妖怪圖,基本原理就是將頁(yè)面中使用到的各種圖片進(jìn)行分類(lèi),整齊劃一的擺在一張背景透明的圖片上面,通過(guò) CSS 的背景技術(shù)實(shí)現(xiàn)圖片的引入,從而減少服務(wù)器發(fā)送和接收請(qǐng)求的次數(shù),提高頁(yè)面的加載速度。

例如,頁(yè)面中有一個(gè)元素,使用 background-image 的方法,插入一張精靈圖。

默認(rèn)背景圖片的左上角字母“a”顯示在元素內(nèi)部,如果想要將字母 O 顯示在元素中,就要使用background-position 屬性調(diào)整背景圖片的位置。

在 ps 軟件中打開(kāi)精靈圖( http://ps.gaoding.com),使用圈選工具,從圖片的左上角測(cè)量到字母"O"的左上角,測(cè)量距離為:水平 390px,垂直 105px。

因?yàn)楸尘皥D片整體需要向左上角移動(dòng),所以 background-position 的值兩個(gè)方向都是負(fù)數(shù):分別為 -390px 和 -105px。此時(shí),字母 o 已經(jīng)顯示在元素內(nèi)部。

如果位置測(cè)量有偏差,可以在瀏覽器的開(kāi)發(fā)者工具中,找到頁(yè)面元素,選中屬性值,按下鍵盤(pán)的上下箭頭,對(duì)屬性值進(jìn)行微調(diào),位置調(diào)整滿意后,根據(jù)這個(gè)值來(lái)修改樣式。

也許你會(huì)問(wèn),精靈圖是前端工程師制作的嗎?實(shí)際上,在團(tuán)隊(duì)的網(wǎng)站開(kāi)發(fā)中,網(wǎng)頁(yè)所需要的各種圖片,UI設(shè)計(jì)師都會(huì)為我們準(zhǔn)備好,我們直接使用即可。

接下來(lái),我們就使用精靈圖技術(shù),完成 “千鋒” 拼音首字母的展示。

創(chuàng)建 014-sprites 文件夾,在文件夾下創(chuàng)建 sprites.html 文件和 sprites-style.css 文件,打開(kāi)html,構(gòu)建基礎(chǔ)代碼,引入外部樣式。

使用 emmet 命令:div.box$*2 快速創(chuàng)建兩個(gè)帶有類(lèi)名的 div 元素。

HTML<div class="box1"></div><div class="box2"></div>打開(kāi) css 文件,定義 div 元素選擇器,聲明樣式:width: 50px,height: 70px,border: 2px solid gray。

先看一下效果,兩個(gè)帶有灰色邊框,縱向排列的容器就做好了!

繼續(xù)給 div 添加樣式:float: left,margin: 10px。

此時(shí),容器已經(jīng)橫向顯示,容器之間也有了間距。

CSSdiv{ width:50px; height:70px; border: 2px solid gray; float:left; margin:10px;}再定義一個(gè) .box1 選擇器,聲明樣式:background: url(sprites.png) no-repeat。

預(yù)覽一下效果,字母 “a” 已經(jīng)在第一個(gè)容器中顯示出來(lái)。

在 ps 中使用圈選工具,測(cè)量圖片左上角到字母 “q” 左上角的水平距離為 545px,垂直距離為 110px。

給 background 屬性追加樣式值:-545px -110px。

這樣,字母 “q” 就顯示出來(lái)了!如果對(duì)位置不滿意,可以在這里微調(diào)。

CSS.box1{ background:url(sprites.png) no-repeat -545px -105px;}重復(fù)前面的操作。在 ps 里測(cè)量字母 f 的位置,水平方向 390px,垂直方向 20px。

再定義一個(gè) .box2 選擇器,聲明樣式:background: url(sprites.png) no-repeat -390px -20px;

再看一下效果,字母 “f” 也顯示出來(lái)了。也可以微調(diào)一下位置。

CSS.box2{ background:url(sprites.png) no-repeat -386px -14px;}
文章配套視頻鏈接: https://www.bilibili.com/video/BV1oU4y1278g/?p=76

關(guān)鍵詞:精靈,基礎(chǔ)

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉