HTML&CSS基礎-雪碧圖的制作和使用


             HTML&CSS基礎-雪碧圖的制作和使用

                                          作者:尹正傑

版權聲明:原創作品,謝絕轉載!否則將追究法律責任。

 

 

一.使用PS將3張圖片合並為一張(溫馨提示:整合圖片適合整理背景圖,如果是img引用的圖片並不使用)

1>.將准備的圖依次拖入到PS中

2>.拉一根輔助線,並點擊"圖像"--->"畫布大小"會彈出當前logo所占的畫布大小信息

3>.計算出寬度,修改畫布大小並選擇定位

4>.如下圖所示,確認寬度和定位后,點擊確定

5>.測量矩形的大小並拖拽參考線,便於后面講其它兩張圖片拖拽過來存放

6>.將hover.png和active.png的按鈕拖入到link.png途中咱們預先給它們量准備的位置

7>.雪碧圖拖拽完成,接下來就是得把咱們制作的成功保存下來了

8>.如下圖所示,點擊"文件" ---> "存儲為web所用格式",選擇圖片的存儲格式為“PNG-24”並點擊"存儲"按鈕

9>.將圖標存儲到本地

10>.圖片保存成功

 

 

 

二.使用咱們自己制作的雪碧圖制作按鈕背景

1>.將圖片拷貝到項目路徑

2>.HTML源代碼

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>圖片按鈕</title>
         <style type="text/css">
             /**
              *     做完功能以后,發現在第一次切換圖片時,會發現圖片有一個非常快的閃爍,這個閃爍會造成一次不佳的體驗。
              *     
              *     產生閃爍的原因:
              *         背景圖片是以外部資源的形式加載進網頁的,瀏覽器每加載一個外部資源就需要單獨發一次http請求,但是我們
              *     外部資源並不是同時加載,瀏覽器惰性的,它默認會在資源被使用時才去加載資源。也就是說,在咱們這個案例中,一
              *     上來只會加載link.png這個背景圖片,由於偽類hover和active的狀態沒有馬上觸發,所以hover.png和
              *     active.png並不是立即加載的,而是當hover被觸發時瀏覽器才會去加載hover.png,當active被觸發時才回去
              *     加載active.png。由於加載圖片需要一定的時間,所以在加載和顯示過程會有一段時間,背景圖片無法顯示,導致出現
              *     閃爍的情況。當第二次再去觸發時咱們又會發現就不會出現閃爍的情況,那是因為瀏覽器使用了第一次下載圖片的緩存。
              *         
              *     解決方案:
              *         為了解決上述d問題,可以將三個圖片整合為一張圖片,這樣可以同時將三張圖片一起加載,就不會出現閃爍的問題了,
              *     然后通過background-position屬性來切換顯示圖片的位置,這種技術叫做圖片整合技術(CSS-Sprite),這種技術有
              *     以下優點: 
              *             1>.將多個圖片整合為一張圖片里,瀏覽器只需要發送一次http請求可以同時加載多個圖片(提高了訪問效率,也提高了用戶體驗)
              *             2>.將多個圖片整合為一張圖片,減小了圖片的總大小,提高請求的速度,增加的用戶體驗
              * 
              *     溫馨提示:
              *         圖片中會保存一個叫顏色表屬性,如果下載三個圖片就會保存三個圖片的顏色表,下載一個圖片只需要保存一個顏色表從而節省了一定的存儲空間
              *                     
              *  
              */
             .btn{
                 /*將a轉換為塊元素*/
                 display: block;
                 /*設置寬高*/
                width: 93px;
                height: 29px;
                /*設置背景圖片*/
                /*background-image: url(img/btn/link.png);*/
                background-image: url(img/btn/my_btn.png);
                /*設置圖片不重復*/
                background-repeat: no-repeat;
             }
             
             .btn:hover{
                 /*設置鼠標移入鏈接時的背景圖片*/
                 /*background-image: url(img/btn/hover.png);*/
                 background-image: url(img/btn/my_btn.png);
                 /*當hover狀態時,希望圖片可以向左移動*/
                 background-position: -93px 0px;
             }
             
             .btn:active{
                 /*設置鼠標正在點擊鏈接時的背景圖片*/
                 /*background-image: url(img/btn/active.png);*/
                 background-image: url(img/btn/my_btn.png);
                 /*當active狀態時,希望圖片可以再一次向左移動*/
                 background-position: -186px 0px;
             }
         </style>
    </head>
    <body>
        
        <!--創建一個超鏈接-->
        <a class="btn" href="#"></a>
    </body>
</html>

3>. 瀏覽器打開以上代碼渲染結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM