參考連接http://www.w3cplus.com/content/css3-font-face 出處W3CPLUScss
css3-自定義字體 @font-face css3
@font-face是CSS3中的一個模塊,他主要是把本身定義的Web字體嵌入到你的網頁中,隨着@font-face模塊的出現,咱們在Web的開發中使用字體不怕只能使用Web安全字體,大家當中或許有許多人會不天然的問,這樣的東西IE能支持嗎?當我告訴你們@font-face這個功能早在IE4就支持了你確定會感到驚訝。個人Blog就使用了許多這樣的自定義Web字體,好比說首頁的Logo,Tags以及頁面中的手寫英文體,不少朋友問我如何使用,能讓本身的頁面也支持這樣的自定義字體,一句話這些都是@font-face實現的。
商業轉載請聯繫做者得到受權,非商業轉載請註明出處。
原文: http://www.w3cplus.com/content/css3-font-face © w3cplus.comweb
@font-face的語法規則:chrome
@font-face { font-family: <YourWebFontName>; src: <source> [<format>][,<source> [<format>]]*; [font-weight: <weight>]; [font-style: <style>]; }
取值說明瀏覽器
一、YourWebFontName:此值指的就是你自定義的字體名稱,最好是使用你下載的默認字體,他將被引用到你的Web元素中的font-family。如「font-family:"YourWebFontName";」安全
二、source:此值指的是你自定義的字體的存放路徑,能夠是相對路徑也能夠是絕路徑;服務器
三、format:此值指的是你自定義的字體的格式,主要用來幫助瀏覽器識別,其值主要有如下幾種類型:truetype,opentype,truetype-aat,embedded-opentype,avg等;svg
四、weight和style:這兩個值你們必定很熟悉,weight定義字體是否爲粗體,style主要定義字體樣式,如斜體。工具
兼容瀏覽器性能
@font-face的兼容問題
1、TureTpe(.ttf)格式:
.ttf字體是Windows和Mac的最多見的字體,是一種RAW格式,所以他不爲網站優化,支持這種字體的瀏覽器有【IE9+,Firefox3.5+,Chrome4+,Safari3+,Opera10+,iOS Mobile Safari4.2+】;
2、OpenType(.otf)格式:
.otf字體被認爲是一種原始的字體格式,其內置在TureType的基礎上,因此也提供了更多的功能,支持這種字體的瀏覽器有【Firefox3.5+,Chrome4.0+,Safari3.1+,Opera10.0+,iOS Mobile Safari4.2+】;
3、Web Open Font Format(.woff)格式:
.woff字體是Web字體中最佳格式,他是一個開放的TrueType/OpenType的壓縮版本,同時也支持元數據包的分離,支持這種字體的瀏覽器有【IE9+,Firefox3.5+,Chrome6+,Safari3.6+,Opera11.1+】;
4、Embedded Open Type(.eot)格式:
.eot字體是IE專用字體,能夠從TrueType建立此格式字體,支持這種字體的瀏覽器有【IE4+】;
5、SVG(.svg)格式:
.svg字體是基於SVG字體渲染的一種格式,支持這種字體的瀏覽器有【Chrome4+,Safari3.1+,Opera10.0+,iOS Mobile Safari3.2+】。
這就意味着在@font-face中咱們至少須要.woff,.eot兩種格式字體,甚至還須要.svg等字體達到更多種瀏覽版本的支持。
爲了使@font-face達到更多的瀏覽器支持,Paul Irish寫了一個獨特的@font-face語法叫Bulletproof @font-face:
@font-face { font-family: 'YourWebFontName'; src: url('YourWebFontName.eot?') format('eot');/*IE*/ src:url('YourWebFontName.woff') format('woff'), url('YourWebFontName.ttf') format('truetype');/*non-IE*/ }
但爲了讓各多的瀏覽器支持,你也能夠寫成:
@font-face { font-family: 'YourWebFontName'; src: url('YourWebFontName.eot'); /* IE9 Compat Modes */ src: url('YourWebFontName.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url('YourWebFontName.woff') format('woff'), /* Modern Browsers */ url('YourWebFontName.ttf') format('truetype'), /* Safari, Android, iOS */ url('YourWebFontName.svg#YourWebFontName') format('svg'); /* Legacy iOS */ }
1、獲取特殊字體:
咱們拿下面這種single Malta字體來講吧:
要獲得single Malta字體,不外乎兩種途徑,其一找到付費網站購買字體,其二就是到免費網站DownLoad字體。固然要給錢的這種傻事我想你們都不會作的,那咱們就獲得免費的地方下載,在哪有呢?我平時都是到Google Web Fonts和Dafont.com尋找本身須要的字體,固然網上也還有別的下載字體的地方,這個Demo使用的是Dafont.com的Single Malta字體,這樣就能夠到這裏下載Single Malta:
Single Malta下載下來後,須要把它解壓縮出來:
2、獲取@font-face所需字體格式:
特殊字體已經在你的電腦中了,如今咱們須要想辦法得到@font-face所需的.eot,.woff,.ttf,.svg字體格式。要獲取這些字體格式,咱們一樣是須要第三方工具或者軟件來實現,下面我給你們推薦一款我經常使用的一個工具fontsquirrel,別的先很少說,首跟我點這裏進入到下面這個界面吧。
若是你進入頁面沒有看到上圖,你能夠直接點擊導航:
若是你看到了上面的界面,那就好辦了,咱們來看如何應用這個工具生成@font-face須要的各類字體,先把咱們剛纔下載的字體上傳上去:
上傳後按下圖所示操做:
如今從Font Squirrel下載下來的文件已經保存在你本地的電腦上了,接着只要對他進行解壓縮,你就能看到文件列表以下所示:
你們能夠看到,解壓縮出來的文件格式,裏面除了@font-face所須要的字體格式外,還帶有一個DEMO文件,若是你不清楚的也能夠參考下載下來的DEMO文件,我在這裏不對DEMO說明問題,我主要是給你們介紹如何把下載下來的文件有價值的運用到咱們的項目中。
例如在本身的本地建立了一個fontface項目:
爲了讓項目結構更清晰,咱們在項目中單首創建一個fonts目錄,用來放置解壓縮出來@font-face所需的字體格式:
如今@font-face所需字體已經加載到本地項目,如今本地項目中的style.css中附上咱們須要的@font-face樣式
@font-face { font-family: 'SingleMaltaRegular'; src: url('../fonts/singlemalta-webfont.eot'); src: url('../fonts/singlemalta-webfont.eot?#iefix') format('embedded-opentype'), url('../fonts/singlemalta-webfont.woff') format('woff'), url('../fonts/singlemalta-webfont.ttf') format('truetype'), url('../fonts/singlemalta-webfont.svg#SingleMaltaRegular') format('svg'); font-weight: normal; font-style: normal; }
到這裏爲止,咱們已經經過@font-face自定義好所需的SingleMalta字體,離最後效果只差一步了,就是把本身定義的字體應用到你的Web中的DOM元素上:
h2.singleMalta { font-family: 'SingleMaltaRegular' }
效果:
看到上面的效果,那你們就知道咱們實現成功了。那麼關於@font-face幫你打造特殊效果的字體,到這裏基本上就完成了,我在這裏須要提醒使用者:
一、若是你的項目中是英文網站,並且項目中的Logo,Tags等應用到較多的這種特殊字體效果,我建議你不要使用圖片效果,而使用@font-face,可是你是中文網站,我以爲仍是使用圖片比較合適,由於加載英文字體和圖片沒有多大區別,可是你加載中文字體,那就不同了,由於中文字體太大了,這樣會影響到項目的某些性能的優化;
二、致命的錯誤,你在@font-face中定義時,文件路徑沒有載對;
三、你只定義了@font-face,但並無應用到你的項目中的DOM元素上;
以上幾點都是在平時製做中常出現的問題,但願你們能小意一些,另外咱們沒有辦法在購買全部字體,就算你實力雄厚,那也沒有辦法在一臺服務器主機上放置你全部項目須要的字體。所以我給你們提供幾個免費字體下載的網址:Webfonts,Typekit,Kernest,Google Web Fonts,Kernest,Dafont,Niec Web Type,否則你點這裏將有更多的免費字體。前面幾個連接是幫助你獲取一些優美的怪異的特殊字體,但下面這個工具做用更是無窮的大,他能幫你生成@font-face所須要的各類字體,這工具就是Font Squirrel。
最後在提醒一下,使用@font-face別的能夠忘了,但Font Squirrel千萬不能忘,由於他能幫你生成@font-face所需的各類字體格式。
到此關於@font-face就介紹完了,不知道你們喜歡不喜歡,若是喜歡的話趕快動手實踐一下,有Blog的能夠立刻運用上去,也能夠炫一下。
2014年03月更新——@font-face沒法在Firefox下正常工做的解決方案,詳細的請點擊:http://stackoverflow.com/questions/2856502/css-font-face-not-working-with-firefox-but-working-with-chrome-and-ie著做
原文: http://www.w3cplus.com/content/css3-font-face © w3cplus.com