CSS3 font-face使用

来源:https://www.cnblogs.com/lxr860821/archive/2019/02/14/10373684.html
-Advertisement-
Play Games

在 CSS3 之前,web 設計師必須使用已在用戶電腦上安裝好的字體。 通過 CSS3,web 設計師可以使用他們喜歡的任意字體。 當您找到或購買到希望使用的字體時,可將該字體文件存放到 web 伺服器上,它會在需要時被自動下載到用戶的電腦上。 您“自己的”的字體是在 CSS3 @font-fa ...


在 CSS3 之前,web 設計師必須使用已在用戶電腦上安裝好的字體。

通過 CSS3,web 設計師可以使用他們喜歡的任意字體。

當您找到或購買到希望使用的字體時,可將該字體文件存放到 web 伺服器上,它會在需要時被自動下載到用戶的電腦上。

您“自己的”的字體是在 CSS3 @font-face 規則中定義的。

@font-face的語法規則:

   @font-face {
      font-family: <YourWebFontName>;
      src: <source> [<format>][,<source> [<format>]]*;
      [font-weight: <weight>];
      [font-style: <style>];
      [font-stretch: <stretch>];
      [unicode-range: <unicode-range>];
    }

font-family定義字體的名稱,src用來指定字體文件地址,可以是相對地址或者絕對地址。@font-face規則的各描述屬性說明如下:

 

描述符描述
font-family name 必需。規定字體的名稱。
src URL 必需。定義字體文件的 URL。
font-stretch
  • normal
  • condensed
  • ultra-condensed
  • extra-condensed
  • semi-condensed
  • expanded
  • semi-expanded
  • extra-expanded
  • ultra-expanded
可選。定義如何拉伸字體。預設是 "normal"。
font-style
  • ormal
  • italic
  • oblique
可選。定義字體的樣式。預設是 "normal"。
font-weight
  • normal
  • bold
  • 100
  • 200
  • 300
  • 400
  • 500
  • 600
  • 700
  • 800
  • 900
可選。定義字體的粗細。預設是 "normal"。
unicode-range unicode-range 可選。定義字體支持的 UNICODE 字元範圍。預設是 "U+0-10FFFF"。

字體格式有太多選擇,不幸的是始終沒有一個能在所有的瀏覽器上通用。這意味著,你必須使用多種字體的方案來保持用戶跨平臺的一致性體驗。當前,在web上使用各種不同字體格式有:TTF、OTF、WOFF、EOT 和 SVG 。具體不同字體在各品牌瀏覽器的支持情況,這裡不一一介紹。

在@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 */
  }

使用@font-face定義自己的WEB字體如下:

@font-face {
  font-family: 'iconfont';
  src: url('../fonts/iconfont.eot');
  src: url('../fonts/iconfont.eot?#iefix') format('embedded-opentype'),
  url('../fonts/iconfont.woff') format('woff'),
  url('../fonts/iconfont.ttf') format('truetype'),
  url('../fonts/iconfont.svg#iconfont') format('svg');
}

 題外話

如何獲取我們所需要的字體文件呢?其一,到付費網站購買字體;其二,到免費網站下載字體。當我們獲取到字體,如何得到同一字體的.eot,.woff,.ttf,.svg字體格式。這裡推薦一個網頁工具font squirrel,它能有效幫助我們生成不同字體格式文件。比如,我們手上已經有目標字體的ttf格式文件,上傳該ttf文件,font squirrel便能幫我們方便地生成其他字體格式文件。關於font squirrel的具體使用,請參考fjdingsd博文,這裡不再贅述。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. 同屏播放視頻 2. 移動端視頻預載入 由於移動端不能預載入視頻,所以hack一種方案:監聽WXJSBridge WeixinJSBridgeReady,先播放再暫停,這樣當觸發播放視頻時就不用等待,就不會出現黑屏情況。 3. 滑動播放視頻 微信安卓環境下需要在touchmove事件中阻止掉預設 ...
  • 1. 修改 HTML 內容 2. 修改 HTML 屬性 ...
  • 採用ionic 開發中,遇到鍵盤彈出遮擋元素的問題。 以登陸頁面為例,輸入用戶名和密碼時,鍵盤遮擋了登陸按鈕。 最終採用自定義指令解決了問題: 引用:將命名好的指令名 :popupKeyBoardShow,按駝峰拆開用“-”連接成小寫,如:popup-key-board-show。 <popup-k ...
  • 在app.js里的 .config 里添加配置,同時在函數中引入 $ionicConfigProvider,具體格式如下所示: ...
  • 通過瀏覽器訪問url時候瀏覽器會攜帶cookie,可利用cookie進行信息驗證如用戶驗證,cookie前後端都可獲取設置,後端用self.get_cookie和self.set_cookie,前端可用document.cookie 獲取設置,根據前端document的這個方法結合Date()方法自... ...
  • 在寫移動端導航的時候經常用到點擊按鈕出現/隱藏導航條的情況,最常見的方法當然還是前端框架直接調用,省心省力,不易出錯;當然還有使用純JS實現的小代碼段。我這裡整理了純CSS實現方式,給需要的人和給自己做個筆記: 實現原理利用CSS偽類:target 可以配合CSS3過渡做出很多不同的效果,具體不做詳 ...
  • echo.js的github地址:https://github.com/toddmotto/echo echo是一個獨立的JavaScript、輕量級的、延遲圖片載入插件,echo壓縮後體積不到1k,使用html的標準data-*屬性,echo支持IE8+。 一般將其放在滾動事件的下麵: <img ...
  • 1. 通過 id 查找 HTML 元素 2. 通過標簽名查找 HTML 元素 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...