CSS精靈技術(shù)與字體圖標

精靈技術(shù)

圖片請求.png

圖所示為網(wǎng)頁的請求原理圖,當用戶訪問一個網(wǎng)站時,需要向服務(wù)器發(fā)送請求悠抹,網(wǎng)頁上的每張圖像都要經(jīng)過一次請求才能展現(xiàn)給用戶珠月。

然而,一個網(wǎng)頁中往往會應(yīng)用很多小的背景圖像作為修飾楔敌,當網(wǎng)頁中的圖像過多時啤挎,服務(wù)器就會頻繁地接受和發(fā)送請求,這將大大降低頁面的加載速度卵凑。為了有效地減少服務(wù)器接受和發(fā)送請求的次數(shù)庆聘,提高頁面的加載速度,出現(xiàn)了CSS精靈技術(shù)(也稱CSS Sprites勺卢、CSS雪碧)伙判。

精靈技術(shù)本質(zhì)

簡單地說,CSS精靈是一種處理網(wǎng)頁背景圖像的方式值漫。它將一個頁面涉及到的所有零星背景圖像都集中到一張大圖中去澳腹,然后將大圖應(yīng)用于網(wǎng)頁,這樣杨何,當用戶訪問該頁面時酱塔,只需向服務(wù)發(fā)送一次請求,網(wǎng)頁中的背景圖像即可全部展示出來危虱。通常情況下羊娃,這個由很多小的背景圖像合成的大圖被稱為精靈圖(雪碧圖),如下圖所示為京東網(wǎng)站中的一個精靈圖埃跷。
jds.png

精靈技術(shù)的使用

CSS 精靈其實是將網(wǎng)頁中的一些背景圖像整合到一張大圖中(精靈圖)蕊玷,然而,各個網(wǎng)頁元素通常只需要精靈圖中不同位置的某個小圖弥雹,要想精確定位到精靈圖中的某個小圖垃帅,就需要使用CSS的background-image、background-repeat和background-position屬性進行背景定位剪勿,其中最關(guān)鍵的是使用background-position屬性精確地定位贸诚。關(guān)于CSS的背景技術(shù)詳情可以查看如下的一片文章--CSS背景技術(shù)詳解

CSS精靈圖的使用中最重要的就是background-position的數(shù)值,第一個數(shù)值是x的值厕吉,第二個值y軸的數(shù)值酱固,這個數(shù)值在fireworks中可以得到,具體的操作如下所示:


精靈圖操作.gif

其次需要注意的是需要給定所需要背景圖的寬度和高度

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>CSS精靈圖</title>
    <!-- 快捷鍵ctrl + enter是快速的切換到下一行 -->
    <style>
        .mobile {
            width: 15px;
            height: 20px;
            background:url(images/jd.png) 0 -100px no-repeat;
        }
    </style>
</head>
<body>
    <div class="mobile"></div>
</body>
</html>

字體圖標

圖片是有諸多優(yōu)點的头朱,但是缺點很明顯运悲,比如圖片不但增加了總文件的大小项钮,還增加了很多額外的"http請求"班眯,這都會大大降低網(wǎng)頁的性能的。更重要的是圖片不能很好的進行“縮放”鳖敷,因為圖片放大和縮小會失真。 移動端響應(yīng)式的設(shè)計中定踱,很多情況下希望圖標是可以縮放的。此時恃鞋, 就可以用字體圖標(iconfont)崖媚。

字體圖標優(yōu)點

  • 可以做出跟圖片一樣可以做的事情,改變透明度、旋轉(zhuǎn)度恤浪,等..
  • 本質(zhì)其實是文字畅哑,可以很隨意的改變顏色、產(chǎn)生陰影水由、透明效果等等...
  • 本身體積更小荠呐,但攜帶的信息并沒有削減。
  • 幾乎支持所有的瀏覽器
  • 移動端設(shè)備必備良藥...

字體圖標使用流程

總體來說砂客,字體圖標按照如下流程:


fontt.png

設(shè)計字體圖標

假如圖標是公司單獨設(shè)計泥张,那就需要第一步了,這個屬于UI設(shè)計人員的工作鞠值, 他們在 illustrator 或 Sketch 這類矢量圖形軟件里創(chuàng)建 icon圖標媚创, 比如下圖:


字體圖標.jpg

上傳生成字體包

當UI設(shè)計人員設(shè)計好svg文件,需要轉(zhuǎn)換成頁面能使用的字體文件彤恶, 而且需要生成的是兼容性的適合各個瀏覽器的钞钙。

推薦網(wǎng)站: http://icomoon.io
阿里icon font字庫:http://www.iconfont.cn/

下載兼容字體包

剛才上傳完畢, 網(wǎng)站會把UI做的svg圖片轉(zhuǎn)換為字體格式声离, 然后下載下來就好了
使用的具體操作如下所示:


字體圖操作.gif

字體引入到HTML

得到壓縮包之后芒炼,最后一步,是最重要的一步了术徊, 就是字體文件已經(jīng)有了本刽,需要引入到頁面中。

  1. 首先把 以下4個文件放入到 fonts文件夾里面弧关。
    fonts文件

    第一步:在樣式里面聲明字體
@font-face {
  font-family: 'icomoon';
  src:  url('fonts/icomoon.eot?7kkyc2');
  src:  url('fonts/icomoon.eot?7kkyc2#iefix') format('embedded-opentype'),
    url('fonts/icomoon.ttf?7kkyc2') format('truetype'),
    url('fonts/icomoon.woff?7kkyc2') format('woff'),
    url('fonts/icomoon.svg?7kkyc2#icomoon') format('svg');
  font-weight: normal;
  font-style: normal;
}

第二步:給盒子使用字體

span {
        font-family: "icomoon";
    }

第三步:盒子里面添加結(jié)構(gòu)

span::before {
         content: "\e900";
    }

或者是把字體圖標引入進來

<span>?</span>  

簡單的例子代碼如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>字體圖標的使用</title>
    <style>
        @font-face {
            font-family: 'icomoon';
            /*這里的字體需要和span的font-family一致*/
            src: url('fonts/icomoon.eot?7kkyc2');
            src: url('fonts/icomoon.eot?7kkyc2#iefix') format('embedded-opentype'),
                url('fonts/icomoon.ttf?7kkyc2') format('truetype'),
                url('fonts/icomoon.woff?7kkyc2') format('woff'),
                url('fonts/icomoon.svg?7kkyc2#icomoon') format('svg');
            font-weight: normal;
            font-style: normal;
        }

        span {
            font-family: "icomoon";
        }

        span::before {
            content: "\e912";
            /* 這里的字體圖標在生成的demo.html中進行尋找 */
        }
    </style>
</head>

<body>
    <span>?</span>
</body>

</html>

追加新圖標到原來庫里面

如果工作中盅安,原來的字體圖標不夠用了,需要添加新的字體圖標世囊,但是原來的不能刪除别瞭,繼續(xù)使用,解決方法如下:

把壓縮包里面的selection.json 從新上傳株憾,然后蝙寨,選中想要新的圖標晒衩,從新下載壓縮包,替換原來文件即可墙歪。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末听系,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子虹菲,更是在濱河造成了極大的恐慌靠胜,老刑警劉巖毕源,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異址愿,居然都是意外死亡冻璃,警方通過查閱死者的電腦和手機响谓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門娘纷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來失驶,“玉大人,你說我怎么就攤上這事嬉探。” “怎么了涩堤?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵分瘾,是天一觀的道長。 經(jīng)常有香客問我德召,道長,這世上最難降的妖魔是什么福荸? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任肴掷,我火速辦了婚禮背传,結(jié)果婚禮上台夺,老公的妹妹穿的比我還像新娘径玖。我一直安慰自己颤介,他們只是感情好,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布丰泊。 她就那樣靜靜地躺著,像睡著了一般话侄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上年堆,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天变丧,我揣著相機與錄音,去河邊找鬼痒蓬。 笑死,一個胖子當著我的面吹牛顾复,可吹牛的內(nèi)容都是我干的鲁捏。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼假丧,長吁一口氣:“原來是場噩夢啊……” “哼动羽!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起曹质,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎几莽,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體站欺,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡纤垂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年峭沦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蓬豁。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡菇肃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蟆技,到底是詐尸還是另有隱情斗忌,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布几苍,位于F島的核電站,受9級特大地震影響妻坝,放射性物質(zhì)發(fā)生泄漏惊窖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一圣拄、第九天 我趴在偏房一處隱蔽的房頂上張望庇谆。 院中可真熱鬧,春花似錦饭耳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽觅赊。三九已至琼稻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間帕翻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留横殴,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓衫仑,卻偏偏與公主長得像堕花,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子缘挽,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5壕曼? 答:HTML5是最新的HTML標準。 注意:講述HT...
    kismetajun閱讀 27,485評論 1 45
  • 轉(zhuǎn)載自:http://web.jobbole.com/82197/ 前端的性能對于一個Web應(yīng)用來說非常重要摹蘑,如果...
    天字一等閱讀 599評論 0 2
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案衅鹿? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽?zāi)J的外補...
    _Yfling閱讀 13,751評論 1 92
  • 什么是 FOUC(無樣式內(nèi)容閃爍)?你如何來避免 FOUC制妄? FOUC - Flash Of Unstyled ...
    MrThorn閱讀 439評論 0 1
  • 1忍捡、盡量減少HTTP請求次數(shù) 終端用戶響應(yīng)的時間中切黔,有80%用于下載各項內(nèi)容砸脊,這部分時間包括下載頁面中的圖像凌埂、樣式...
    兔子不打地鼠打代碼閱讀 530評論 0 1