今天模仿百度首頁手機版的時候遇到的@font-face的問題,如今整理一下。css
問題:圖中紅色區域,在拷貝F12樣式的時候,並無出現這些小圖標。chrome
圖1:百度的效果 圖2:我作的效果瀏覽器
在審查元素的時候,發現這些地方不是圖片,只是字體。代碼以下:svg
.navs-news:before { content: "\e672"; color: #777; font: 24px/1 icons; }
@font-face { /*自定義的字體名稱*/ font-family: <YourWebFontName>; /*source是自定義的字體的存放路徑 format是自定義的字體的格式,主要用來幫助瀏覽器識別*/ src: <source> [<format>][,<source> [<format>]]*; /*字體是否爲粗體*/ font-weight: <weight>; /*定義字體樣式*/ font-style: <style>; }
@font-face{ font-family:icons; src:url(//m.baidu.com/static/index/iconfont/iconfont_f0abbec7.eot); src:url(//m.baidu.com/static/index/iconfont/iconfont_f0abbec7.eot#iefix) format('embedded-opentype'), url(//m.baidu.com/static/index/iconfont/iconfont_f0abbec7.woff) format('woff'), url(//m.baidu.com/static/index/iconfont/iconfont_f0abbec7.ttf) format('truetype'), url(//m.baidu.com/static/index/iconfont/iconfont_f0abbec7.svg?#iconfont) format('svg'); font-weight:400; font-style:normal }
@font-face { font-family: icons; src: url(../fonts/iconfont_f0abbec7.eot); src: url(../fonts/iconfont_f0abbec7.eot#iefix) format('embedded-opentype'), url(../fonts/iconfont_f0abbec7.woff) format('woff'),
url(../fonts/iconfont_f0abbec7.ttf) format('truetype'),
url(../fonts/iconfont_f0abbec7.svg?#iconfont) format('svg'); font-weight: 400; font-style: normal }
這時候,回到咱們最開始看到的代碼就能夠解釋了,如代碼裏的註釋:字體
.navs-news:before { /*字體圖標的編號*/ content: "\e672"; /*字體顏色*/ color: #777; /*字體大小,以及font-family:icons和@font-face呼應*/ font: 24px/1 icons; }
再刷新咱們的網頁,便可看到這些可愛的「小圖標」。url
全部的字體文件最好都下載到本地,由於各個瀏覽器支持的字體不一致。好比.eot字體是IE專用字體,能夠從TrueType建立此格式字體,支持這種字體的瀏覽器有【IE4+】;.svg字體是基於SVG字體渲染的一種格式,支持這種字體的瀏覽器有【Chrome4+,Safari3.1+,Opera10.0+,iOS Mobile Safari3.2+】spa