日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

字体大小的设置_ios 设置的字体大小与实际的字体大小不一致

發布時間:2025/3/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 字体大小的设置_ios 设置的字体大小与实际的字体大小不一致 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題緣由:做文章詳情頁的時候,文字多了一點字體就放大了,真的是奇了怪了。

如果你覺得本文對您有用,可以關注我的個人微信公眾號 @前端愛好者社區 會為你帶來更多的內容。

問題重現

一段文字的時候

兩段文字的時候

很明顯,字體放大了很多。

疑點

meta標簽縮放的問題

最近正好遇到處理retain屏1px的問題,然后采用的是自動修改meta標簽。

/*** Created by jarjune on 2017/7/26.*/ (function (doc, win) {var scale = 1.0;var ratio = 1;if (window.devicePixelRatio == 2) {scale *= 0.5;ratio *= 2;}if (window.devicePixelRatio == 3) {scale *= (1/3);ratio *= 3;}var text = '<meta name="viewport" content="initial-scale=' + scale + ', maximum-scale=' + scale + ',' + ' minimum-scale=' + scale + ', width=device-width,' + ' user-scalable=no" />';document.write(text);var docEl = doc.documentElementvar resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'var recalc = function () {var clientWidth = docEl.clientWidthif (!clientWidth) returndocEl.style.fontSize = 100 * (clientWidth / 750) + 'px'}if (!doc.addEventListener) returnrecalc()win.addEventListener(resizeEvt, recalc, false)// doc.addEventListener('DOMContentLoaded', recalc, false) })(document, window);

當window.devicePixelRatio == 1時,沒有發現字體自動放大的問題。

當window.devicePixelRatio == 2或者window.devicePixelRatio == 3時,問題就出現了。

科學解釋【Font Boosting】

這個特性被稱做「Text Autosizer」,又稱「Font Boosting」、「Font Inflation」,是 Webkit 給移動端瀏覽器提供的一個特性:當我們在手機上瀏覽網頁時,很可能因為原始頁面寬度較大,在手機屏幕上縮小后就看不清其中的文字了。而 Font Boosting 特性在這時會自動將其中的文字字體變大,保證在即不需要左右滑動屏幕,也不需要雙擊放大屏幕內容的前提下,也可以讓人們方便的閱讀頁面中的文本。

解決方案

  • <meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, user-scalable=no"> 縮放比設為1,至于1px之類的問題可以采取其他方案解決。
  • 給元素指定高度(想想是不太現實的),不過設置max-height:99999px也有效。
  • 設置text-size-adjust:none,不過大部分瀏覽器都不兼容。
  • 問題代碼

    <!DOCTYPE html> <html> <head><meta charset="utf-8"><title>測試</title><script type="text/javascript" src="js/rem.js"></script><link rel="stylesheet" type="text/css" href="css/base.css"> </head> <body> <p style="font-size: .28rem;">測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測</p> <p style="font-size: .28rem;">測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測</p> </body> </html>

    經過又一次測試發現,同樣的代碼,在安卓上文字會自動變大,在ios的3x屏上文字會自動變小,
    上文說的設置max-height:99999px只是在安卓上有用,在3x屏上,需要設置width為一個固定的值才有效,比如7.5rem,注意!設置100%也無效!

    修改后的代碼

    <!DOCTYPE html> <html> <head><meta charset="utf-8"><title>測試</title><script type="text/javascript" src="js/rem.js"></script><link rel="stylesheet" type="text/css" href="css/base.css"> </head> <body> <p style="font-size: .28rem; max-height: 99999px; width: 7.5rem;">測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測</p> <p style="font-size: .28rem; max-height: 99999px; width: 7.5rem;">測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測試測</p> </body> </html>

    最終方案

  • <meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, user-scalable=no"> 縮放比設為1,至于1px之類的問題可以采取其他方案解決。
  • height設置max-height:99999px,width設置固定大小。
  • 設置text-size-adjust:none,不過大部分瀏覽器都不兼容
  • 總結

    以上是生活随笔為你收集整理的字体大小的设置_ios 设置的字体大小与实际的字体大小不一致的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。