web端字體兼容性適配

2021-12-29 左執筆
前言

在幾年的開發生涯中碰見過幾次由字體引起的各終端的頁面顯示差異。或許是由移動端等終端字體庫引起的差異引起的,或許是由 Modern Browser 或 IE Browser 直接的解析差異引起的,或許是由字體源設計表現引起的,或許是由所設置的通用字體族字符的編碼格式引起的.來一起來探個究竟吧~

body {
  font-family: -apple-system, system-ui, BlinkMacSystemFont, Helvetica, Helvetica Neue, PingFang SC, 'Hiragino Sans GB',
    'Microsoft YaHei', '\u5fae\u8f6f\u96c5\u9ed1', '微軟雅黑', Arial, sans-serif;
}

兼容性問題說明 FAQS中文 IE9 Browser 不支持英文字體,font-family需設置一項中文的字體族字符,又因為某些瀏覽器不支持中文字符串,最後的方法是使用中文對應英文(或中文轉換 Unicode)的字體族字符。如設置宋體最保險的做法:font-family:Arial, '宋體', Helvetica,sans-serif; -> font-family:Arial, SimSun, Helvetica,sans-serif;如設置微軟雅黑最保險的做法:font-family:'Microsoft YaHei','微軟雅黑', sans-serif 或 font-family:'\u5fae\u8f6f\u96c5\u9ed1', 'Microsoft YaHei','微軟雅黑', sans-serif。IE 不支持 思源黑體探究:思源黑體與傳統字體的行高標準不同,其字體中的 FontBBox 這項屬性引起字體基線過高。字體源為第三方字體,如思源黑體時,Modern Browser 表現正常,IE Browser 表現字體行高不垂直居中。IE Browser 須引入 IE hook 針對性的在 IE Browser 為字體添加 padding-top:3px 解決,或者直接不引用瀏覽器不匹配的字體。字體族字符屬於字符的,不需要加引號,否則在 IE6/7 裡面會失效,並且後面的樣式也會不生效!在 Microsoft YaHei 後加上 微軟雅黑 是為了 兼容 opera。font-family:'Microsoft YaHei','微軟雅黑', sans-serif。針對 Windows 下 IE 的正文使用宋體效果好。針對雅黑字體,用 13px 和 15px 等奇數字體顯示效果更好。宋體在 Windows 作業系統上顯示良好,但是僅限於 12 像素和 14 像素。超出 14 像素的字基本就會出現字不夠方正,鋸齒明顯的現象。在 Mac 上各種字號都可以很好的顯示。這是因為 Mac 上針對字體所做的反鋸齒效果做的比較好。元素使用 line-height 時 Android 端表現不垂直居中。需用 flexbox 或 padding 解決。認識 font-family含義:為元素設置字體。字體是優先級從左往右順序執行,字體間由 逗號 分割的 字體名 或 字體族名。

解析器會從左往右遍歷font-family的值,直到系統中含有並能顯示該字體為止。

語法:font-family: "Gill Sans Extrabold", sans-serif;

例如:Lucida Bright, Lucida Fax, Palatino, "Palatino Linotype", Palladio, "URW Palladio", serif.`例如, "Open Sans", "Fira Sans", "Lucida Sans", "Lucida Sans Unicode", "Trebuchet MS", "Liberation Sans", "Nimbus Sans L", sans-serif例如, "Fira Mono", "DejaVu Sans Mono", Menlo, Consolas, "Liberation Mono", Monaco, "Lucida Console", monospace.`草書字體。這種字體有的有連筆,有的還有特殊的斜體效果。因為一般這種字體都有一點連筆效果,所以會給人一種手寫的感覺。例如,"Brush Script MT", "Brush Script Std", "Lucida Calligraphy", "Lucida Handwriting", "Apple Chancery", cursive.`Fantasy 字體主要是那些具有特殊藝術效果的字體。例如,Papyrus, Herculanum, Party LET, Curlz MT, Harrington, fantasy.`從瀏覽器所處平臺處獲取的默認用戶界面字體。由於世界各地的排版習慣之間有很大的差異,這個通用選項 is provided for typefaces that don't map cleanly into the other generics針對顯示數學相關字符的特殊樣式問題而設計的字體:支持上標和下標、跨行括號、嵌套表達式和具有不同含義的 double struck glyphs。一種漢字字體,介於宋體和楷體之間。這種字體常用於某些政府文件。

<family-name>:一個字體族的名字。例如 Times 和 Helvetica 都是字體族名。字體族名可以包含空格,但包含空格時應該用引號。

<generic-name>:通用字體族名是一種備選機制,用於在指定的字體不可用時給出較好的字體。通用字體族名都是關鍵字,所以不可以加引號。在列表的末尾應該至少有一個通用字體族名。以下是該屬性可能的取值以及他們的定義。

實例展示-有效的字體族名

字體族名或者是引號包括的字符串,或者是不含引號的一個或多個合法標識串構成的。

這意味著在沒有帶引號的字體族名的開頭是不能使用標點符號字符和數字字符的。

/* 有效字體 */
font-family: 'Gill Sans Extrabold', sans-serif;
font-family: 'Goudy Bookletter 1911', sans-serif;

/* 無效字體 */
font-family: Goudy Bookletter 1911, sans-serif; /* 字符間有空格需加引號 */
font-family: Red/Black, sans-serif; /* 使用標點符號字符 需要加引號 */
font-family: 'Lucida' Grande, sans-serif; /* 引號標錯,應為:'Lucida Grande' */
font-family: Ahem!, sans-serif; /* 使用標點符號字符 需要加引號 */
font-family: test @foo, sans-serif; /* 使用標點符號字符 需要加引號 */
font-family: #POUND, sans-serif; /* 使用標點符號字符 需要加引號 */
font-family: Hawaii 5-0, sans-serif; /* 使用數字字符 需要加引號 */

移動端三大手機系統字體ios 系統android 系統默認中文字體是 Droidsansfallbackwinphone 系統

對比測試機 iphone 4s、三星 GT-N7000 android 2.3.6、HTC windows Phone 8.0  三種手機中的默認中文字體和英文字體展現:

終端字體差異

對比有關襯線字體和無襯線字體的差別

有關襯線字體和無襯線字體的差別

對比字體差異,建議使用系統默認字體,另外移動端手機都同時兼容 Helvetica Neue ,因此適配可為

body {
  font-family: -apple-system, system-ui, BlinkMacSystemFont, Helvetica, Helvetica Neue, PingFang SC, 'Hiragino Sans GB',
    'Microsoft YaHei', '\u5fae\u8f6f\u96c5\u9ed1', '微軟雅黑', Arial, sans-serif;
}

中英文字體對照表

在 css 中推薦使用中文字體的英文表示法,以下附常見中文字體的英文名:

Mac OS 的一些:

華文細黑:STHeiti Light [STXihei]蘋果儷中黑:Apple LiGothic Medium

PMingLiU Windows 的一些:

仿宋_GB2312:FangSong_GB2312

裝 Office 會生出來的一些:

字體中文名-英文名-Unicode 對照表字體中文名-英文名-Unicode對照表相關文獻修正思源黑體在 Adobe 軟體中文本選區過高的問題原文-web 端字體兼容性適配(https://liejiayong.github.io/idea-domain/post/%5Bfont%5D%5Bwebfont%5Dweb%E7%AB%AF%E5%AD%97%E4%BD%93%E5%85%BC%E5%AE%B9%E6%80%A7%E9%80%82%E9%85%8D.html#%E5%89%8D%E8%A8%80)

相關焦點

  • 雲適配陳本峰詳解開源HTML5框架Amaze UI
    根據Amaze UI的官網介紹,該框架的特點是mobilefirst,解決Web應用從PC向多屏適配的問題,兼容國內主流瀏覽器和平臺,並且專註解決中文排版優化問題。  InfoQ中文站跟雲適配CEO陳本峰,前微軟美國總部IE瀏覽器核心工程師,進行了交流,了解有關Amaze UI框架的更多細節。
  • 最佳WEB字體排版實踐的簡明指導手冊
    目錄簡介字體排版設計字體選擇字體使用web字體字體加載OpenType的特性Web 樣式指導總結簡介字體排版絕不僅僅是使用字體那麼簡單,它包括了關於文字」看上去會是怎麼樣?」擴展閱讀:使用web字體我們使用以下的格式來聲明引入的web字體文件:@font-face {  font-family: 'Helvetica Neue';  src: url('/assets/fonts/HelveticaNeue-Light.eot');  src: url('/
  • 網站不支持移動端適配,則會影響谷歌搜索排名
    搜尋引擎老大哥,谷歌最近在海外的站長大會上發布了一條新規,要求在谷歌上收錄的網站要能夠支持移動端適配,即用戶訪問的頁面和根據PC或移動端的情況進行自適應,從用戶體驗的角度體驗的角度出發是對的,而且若PC站點沒有做移動端適配的話,估計將減少收錄,作為關鍵詞排名的因素之一。
  • 水晶點陣字體:亮瞎眼的非主流字體典範
    一般人還真駕馭不了這款字體,懷著好奇的心態,小編把這款字體移植到手機上面,膽大的可以嘗鮮。不嫌棄的,看看手機端的效果圖吧:有些常用字,也是缺少的,這個小編沒辦法。也沒心思去找類似的字形來補充,只能用黑體字湊合一下,畢竟,這玩意大家也就嘗個鮮。當然了,有朋友能找到類似的大字庫的字體讓小編補一下,也可以抽空弄弄。
  • 輕鬆搞定移動端適配
    本文將從移動端適配的基礎概念出發,探究移動端適配各種問題的解決方案和實現原理。一、英寸一般用英寸描述屏幕的物理大小,如電腦顯示器的 17、 22,手機顯示器的 4.8、 5.7等使用的單位都是英寸。在 web中,瀏覽器為我們提供了 window.devicePixelRatio來幫助我們獲取 dpr。
  • 適合WEB和APP設計的字體與排版指南
    字體在不同設備(iOS/Andorid/PC端)都有著不同的規範和應用方案,學會一些標準的設計排版規則,可以讓我們少範錯誤。1.4 字號 Font-Size字號就是字體大小,通常在網頁端使用px作為字號的單位。移動端興起後,ios字體單位是pt,Android是sp。以ios為例,正文字號不應小於11pt,這樣才能被正常閱讀,建議在14-18pt之間。
  • 谷歌搜索新規:網站必須支持移動端,僅有PC端不予收錄
    谷歌搜索最近在國外的站長大會發布新規,要求以後所有網站必須同步支持適配移動端,僅有PC端網站將不被谷歌搜索收錄,納入排名索引!了解到,在最近舉辦的2020國外站長大會上,谷歌突然在會上針對網站給出了搜索方面的新規定,新規要求:從「2021年3月份之後,所有網站如果只有PC端,網站所有頁面將全部不被谷歌搜索收錄,網站所有頁面和內容必須支持適配移動端,包括文字、數據、圖片、視頻等。在推出」移動端搜索優先排名之後,搜索流量再一次向移動端傾斜。
  • 你一定要收藏好的85款超棒的web前端開發工具!
    15、Fontastic:http://fontastic.me/一個字體圖標庫網站,快速創建您的圖標字體,提升網站加載速度。 50、What Font Is:http://www.whatfontis.com/使用什麼字體您可以確定您要查找的字體!
  • 6·18巨獻丨精緻的悅黑5字重小字體
    ===本次更新內容===①.增加iOS12中英文的兼容性,去年分享的版本僅僅支持iOS10-iOS11系統;②.增加安卓系統適配,安卓很少分享小字體,今天算是特例了;③.優化中文字庫,刪除之前分享版本裡面大量多餘的和Emoji表情衝突的、和其他國家地區語言衝突的字符
  • 『免費·更新』坐等iOS14.4-14.5越獄丨iOS8時代最愛的字體
    上上次更新這款字體,大概是2018年7月份的時候。
  • web前端開發,怎麼才能讓頁面排版更清爽?
    一、強調字體 字體的設計與強調在網頁當中相當重要,合適的排版和適當的字體強調,不僅可以讓用戶快速的抓住網站中的重點,同樣可以增強網站對用戶的吸引力。
  • MI處理器遇BUG,蘋果用戶外接屏幕讀不到解析度,兼容性背鍋
    但話說回來,這其實是蘋果第二次轉向自研體系(第一次PowerPC),尤其是X86當政的時代,實際操作體驗以及軟體兼容性方面都值得深入考究。這不,最近問題就來了,有網友反饋稱搭載M1處理器的Mac電腦對一些寬屏顯示器,在兼容性方面不是很友好。簡單而言就是在Mac電腦外接超寬帶魚屏等非常規解析度屏幕使用時,電腦無法判定具體類型,屏幕解析度無法正常調節。
  • 『重磅精品』完全重製,不可錯過 | 筑紫a圓·6字重(包含iOS14適配)
    因此在此iOS14適配之際,選了這款呼聲較高的重製,稱2.0。由於博主的記性差,若是中途中斷的話到隔天會忘記做到哪一部分,此字做好已是凌晨3點左右。但是博主個人十分滿意這個版本,希望你們也會喜歡。· 首先區別1.0版本的是製作流程,第一版6字重裡面的4層字重,內嵌的繁體補字皆為手工渲染,所以精確程度不如原生。
  • 國科微與海光完成產品兼容性合作認證
    近日,國科微與海光完成產品兼容性合作認證,測試結果顯示,國科微全國產固態硬碟310C-Y系列與海光7000系列、5000系列及3000系列CPU均兼容良好,達到性能、可靠性要求,滿足用戶的應用需求。此次雙方兼容性合作認證順利完成,充分證明了國科微固態硬碟產品的高性能、高兼容性,以及對主流國產軟硬體平臺適配的快速響應能力。截至目前,國科微已經與鯤鵬、龍芯、飛騰、海光、麒麟軟體、UOS等多個國產CPU及國產OS完成產品兼容性互認證。未來,國科微將積極攜手合作夥伴開展產品適配,推進國產存儲生態建設,核「芯」實力打造中國存儲。
  • 目前Web伺服器有哪些呢
    WEB伺服器種類:1.IISIIS伺服器全稱為:它屬於微軟的 web伺服器,也是目前最受歡迎的 web伺服器產品之一。2.Kanglekangle web伺服器:是高性能 web伺服器和反向代理伺服器軟體。
  • 『更新』這款字體,就如同一幅漂亮的水墨山水
    今日更新:增加一個未Root安卓系統用的精簡TTF文件。
  • B端產品中,Web端表單如何設計
    編輯導語:B端產品往往由於業務體量龐大,導致信息複雜,同時對業務的精確性的要求很高;服務於B端的業務,不能夠出信息錯誤,填錯一個信息,就會引發巨大的問題。本文結合筆者自己的工作經驗,總結了大型B端業務中表單的設計方法,供小夥伴參考。
  • Android平板多屏幕適配
    所以如果使用手機屏幕適配的方法來適配,系統不認識 mdpi 文件夾下的尺寸,會去找 values 文件夾下的 dimens 文件裡的尺寸。沒有找到 swxxxdp 也沒有找到默認尺寸,就會報資源找不到異常。平板-Tablet適配原則-最小寬度限定符
  • 微信授權登錄、適配ipad橫屏,向日葵iOS控制端9.8.6更新升級!
    微信授權登錄、適配ipad橫屏,向日葵iOS控制端9.8.6更新升級! 近日,知名遠程控制品牌向日葵,更新升級了向日葵遠程控制iOS控制端,統一明亮主題UI界面,支持掃碼登錄PC端和微信授權登錄APP,iOS版控制端還適配iPad橫屏,支持跨平臺、跨系統複製粘貼文字等功能,為向日葵iOS主控端用戶帶來新體驗。
  • 高端黑體字形:方正正黑全面更新適配蘋果+安卓系統
    這款字體是iOS8時候,小編最喜歡的字體,上次更新應該是截止到了iOS11系統,隨著iOS12越獄越來越成熟,本次對字體進行重新優化更新分享:①.英文方面,這款字體之前一直搭配Neutraface英文,但是標點符號沒有調整優化,本次調整優化,調整冒號居中;②.中文方面,刪除Hinting,縮小文件體積