關於移動端的font的大小問題

来源:http://www.cnblogs.com/chenpingzhao/archive/2016/03/15/5281437.html
-Advertisement-
Play Games

iOS 4.0+ 使用英文字體 Helvetica Neue,之前的iOS版本降級使用 Helvetica 中文字體設置為華文黑體STHeiTi 預設數字字體是Helvetica Neue 需補充說明,華文黑體並不存在iOS的字體庫中(http://support.apple.com/kb/HT58


一、font-family

使用無襯線字體

body {
    font-family: "Helvetica Neue", Helvetica, STHeiTi, sans-serif;
}
  • iOS 4.0+ 使用英文字體 Helvetica Neue,之前的iOS版本降級使用 Helvetica

  • 中文字體設置為華文黑體STHeiTi

  • 預設數字字體是Helvetica Neue

需補充說明,華文黑體並不存在iOS的字體庫中(http://support.apple.com/kb/HT5878), 但系統會自動將華文黑體 STHeiTi 相容命中系統預設中文字體黑體-簡或黑體-繁

Heiti SC Light 黑體-簡 細體 (iOS 7後廢棄)
Heiti SC Medium 黑體-簡 中黑
Heiti TC Light 黑體-繁 細體
Heiti TC Medium 黑體-繁 中黑

原生Android下中文字體與英文字體都選擇預設的無襯線字體

  • 4.0 之前版本英文和數字字體 原生 Android 使用的是 Droid Sans,中文字體原生 Android 會命中 Droid Sans Fallback

  • 4.0 之後中英文字體都會使用原生 Android 新的 Roboto 字體

  • 其他第三方 Android 系統也一致選擇預設的無襯線字體

結論

  • 各個手機系統有自己的預設字體,且都不支持微軟雅黑

  • 如無特殊需求,手機端無需定義中文字體,使用系統預設

  • 英文字體和數字字體可使用 Helvetica ,三種系統都支持

/* 移動端定義字體的代碼 */
body{font-family:Helvetica;}

二、font-size

1、rem是什麼?

rem(font size of the root element)是指相對於根元素的字體大小的單位。簡單的說它就是一個相對單位。看到rem大家一定會想起em單位,em(font size of the element)是指相對於父元素的字體大小的單位。它們之間其實很相似,只不過一個計算的規則是依賴根元素一個是依賴父元素計算。

2、使用設置viewport進行縮放

web app很多都是通過這種方式來做的,以320寬度為基準,進行縮放,最大縮放為320*1.3 = 416,基本縮放到416都就可以相容iphone6 plus的屏幕了,這個方法簡單粗暴,又高效。不過有部分同學使用過程中反應縮放會導致有些頁面元素會糊的情況

3、rem適配

html{
    font-size:20px;
}
.btn {
    width: 6rem;
    height: 3rem;
    line-height: 3rem;
    font-size: 1.2rem;
    display: inline-block;
    background: #06c;
    color: #fff;
    border-radius: .5rem;
    text-decoration: none;
    text-align: center;    
}

這種情況下:20px  = 1rem 在根元素(font-size = 20px的時候)

一般的標準

4、使用media query設置也可以實現適配

html {
    font-size : 20px;
}
@media only screen and (min-width: 401px){
    html {
        font-size: 25px !important;
    }
}
@media only screen and (min-width: 428px){
    html {
        font-size: 26.75px !important;
    }
}
@media only screen and (min-width: 481px){
    html {
        font-size: 30px !important; 
    }
}
@media only screen and (min-width: 569px){
    html {
        font-size: 35px !important; 
    }
}
@media only screen and (min-width: 641px){
    html {
        font-size: 40px !important; 
    }
}

三、圖片自適應 

剛說完REM佈局,那麼用百分比佈局也能實現一樣的效果,但是用百分比佈局,必須要面臨一個問題:圖片寬度100%,頁面載入時會存在高度塌陷的問題。.

padding-top = (Image Height / Image Width) * 100%

原理:padding-top值為百分比時,取值是是相對於寬度的

.cover{position: relative; padding-top: 100%; height: 0; overflow: hidden;}
.cover img{position: absolute; top: 0; width: 100%;}

  

參考文章

https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Media_queries

https://isux.tencent.com/web-app-rem.html

http://www.ghugo.com/mobile-h5-fluid-layout-for-iphone6/

http://alloyteam.github.io/Spirit/modules/Standard/

 

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

-Advertisement-
Play Games
更多相關文章
  • border-radius瀏覽器相容性: IE9+、Firefox 4+、Chrome、Safari 5+ 以及 Opera 支持 border-radius 屬性。 <style>.box { position:relative; width: 99px; height: 99px; paddin
  • 前面提到 ES5 對象屬性描述符,這篇看看對象的擴展、密封和凍結。 阻止對象擴展,讓一個對象變的不可擴展,也就是永遠不能再添加新的屬性 ES3 是沒有辦法阻止對象擴展的,定義對象後可以給對象添加任意屬性,如 ES5 的 Object.preventExtensions 則可以阻止給對象添加新屬性 如
  • 重現代碼 以上網頁代碼,在 IE10/11 中輸出如下 可以看到IE10/11克隆時竟然把值賦給了value,這是一個的bug。 其它瀏覽器輸出的均是空字元串。 判斷是否有該bug的函數提取如下
  • Atitit. atiJavaExConverter4js 新的特性 1.1. V1新特性1 1.2. V2 新特性1 2. Keyword1 3. Catch1 4. Convert n Throw ex2 5. --atiex2 Java ex convert Catch 不同的ex Try c
  • Atitit hre框架v5 新特性 HREv5 1. V5新特性 apiurl2="/wrmiServlet";1 2. V1 新特性1 3. V2 新特性 添加php版1 4. V3 新特性 callback_checkJavaEx(data);1 5. V4 新特性1 基礎實現 <script
  • 本文內容相當簡單,所以沒有發佈到博客園首頁,如果你不幸看到,那隻能是我這篇文章的榮幸,謝謝你的大駕光臨~
  • html5 視頻播放
  • 說明:用線性漸變創建圖像 語法: <linear-gradient> = linear-gradient([ [ <angle> | to <side-or-corner> ] ,]? <color-stop>[, <color-stop>]+) <side-or-corner> = [left |
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...