摘要:內(nèi)核下,字號(hào)會(huì)自動(dòng)放大的問(wèn)題問(wèn)題描述有時(shí)候在做移動(dòng)端頁(yè)面的時(shí)候,會(huì)發(fā)現(xiàn)某些字體會(huì)自動(dòng)放大而頁(yè)面中另一部分卻是對(duì)的,放大的比例看上去還沒(méi)啥規(guī)律,很是詭異。
webkit內(nèi)核下,字號(hào)會(huì)自動(dòng)放大的問(wèn)題
blog
github
有時(shí)候在做移動(dòng)端頁(yè)面的時(shí)候,會(huì)發(fā)現(xiàn)某些字體會(huì)自動(dòng)放大(而頁(yè)面中另一部分卻是對(duì)的- -),放大的比例看上去還沒(méi)啥規(guī)律,很是詭異。
一探究竟網(wǎng)上一通搜索,還真搜出來(lái)了。
首先,這個(gè)不是bug,是Chromium內(nèi)核提高移動(dòng)端文本可讀性的一個(gè)特性,叫做這個(gè)特性被稱(chēng)做「Text Autosizer」,又稱(chēng)「Font Boosting」、「Font Inflation」,具體可以見(jiàn)這個(gè)文檔Chromium’s Text Autosizer,計(jì)算規(guī)則則可以在這里看到TextAutosizer.cpp,在文檔里可以看到計(jì)算公式如下
multiplier = Math.max(1, deviceScaleAdjustment * textScalingSlider * systemFontScale * clusterWidth / screenWidth); if (originFontSize < 16) { computedFontSize = originFontSize * multiplier; } else if (16 <= originFontSize <= (32 * multiplier - 16)) { computedFontSize = (originFontSize / 2) + (16 * multiplier - 8); } else if (originFontSize > (32 * multiplier - 16)) { computedFontSize = originFontSize; }
變量解釋?zhuān)?/p>
originFontSize: 原始字體大小
computedFontSize: 經(jīng)過(guò)計(jì)算后的字體大小
multiplier: 換算系數(shù),值由以下幾個(gè)值計(jì)算得到deviceScaleAdjustment:
當(dāng)指定?viewport width=device-width?時(shí)此值為 1,否則值在 1.05 - 1.3 之間,有專(zhuān)門(mén)的計(jì)算規(guī)則
textScalingSlider: 瀏覽器中手動(dòng)指定的縮放比例,默認(rèn)為 1
systemFontScale: 系統(tǒng)字體大小,Android設(shè)備可以在「設(shè)備 - 顯示 - 字體大小」處設(shè)置,默認(rèn)為 1
clusterWidth: 應(yīng)用 Font Boosting 特性字體所在元素的寬度(如何確定這個(gè)元素請(qǐng)參考上邊兩個(gè)鏈接)
screenWidth: 設(shè)備屏幕分辨率(DIPs, Density-Independent Pixels),如 iPhone 5 為 320
其實(shí)嘛,解決起來(lái)還是容易的~
給元素指定寬高試了下給元素多帶帶設(shè)置width或height或max-height即可禁用Text Autosizer
使用-webkit-text-size-adjust給元素設(shè)置 -webkit-text-size-adjust: none;可禁用Text Autosizer,這個(gè)屬性還能使得我們?cè)谝苿?dòng)端使用小于12px的字體。此屬性在桌面版中無(wú)效。
參考資料flexible.js字體大小詭異現(xiàn)象解析及解決方案
網(wǎng)頁(yè)字體縮放樣式-webkit-text-size-adjust的用法詳解
以上。
new game!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/50157.html
摘要:內(nèi)核下,字號(hào)會(huì)自動(dòng)放大的問(wèn)題問(wèn)題描述有時(shí)候在做移動(dòng)端頁(yè)面的時(shí)候,會(huì)發(fā)現(xiàn)某些字體會(huì)自動(dòng)放大而頁(yè)面中另一部分卻是對(duì)的,放大的比例看上去還沒(méi)啥規(guī)律,很是詭異。 webkit內(nèi)核下,字號(hào)會(huì)自動(dòng)放大的問(wèn)題 bloggithub 問(wèn)題描述 有時(shí)候在做移動(dòng)端頁(yè)面的時(shí)候,會(huì)發(fā)現(xiàn)某些字體會(huì)自動(dòng)放大(而頁(yè)面中另一部分卻是對(duì)的- -),放大的比例看上去還沒(méi)啥規(guī)律,很是詭異。 showImg(https://...
摘要:本文主要介紹一些響應(yīng)式布局容易忽略但又很重要的知識(shí)點(diǎn)。單位不僅僅可以用來(lái)設(shè)置字號(hào),還可以設(shè)置任何盒模型的屬性,比如有一點(diǎn)優(yōu)勢(shì)就是可以和媒體查詢(xún)配合,實(shí)現(xiàn)響應(yīng)式布局運(yùn)用場(chǎng)景如果我們做的頁(yè)面只在移動(dòng)端訪問(wèn),這是因?yàn)椴患嫒莸桶姹镜臑g覽器。 一、前言 響應(yīng)式Web設(shè)計(jì)可以讓一個(gè)網(wǎng)站同時(shí)適配多種設(shè)備和多個(gè)屏幕,可以讓網(wǎng)站的布局和功能隨用戶的使用環(huán)境(屏幕大小、輸入方式、設(shè)備/瀏覽器能力)而變化。...
摘要:本文主要介紹一些響應(yīng)式布局容易忽略但又很重要的知識(shí)點(diǎn)。單位不僅僅可以用來(lái)設(shè)置字號(hào),還可以設(shè)置任何盒模型的屬性,比如有一點(diǎn)優(yōu)勢(shì)就是可以和媒體查詢(xún)配合,實(shí)現(xiàn)響應(yīng)式布局運(yùn)用場(chǎng)景如果我們做的頁(yè)面只在移動(dòng)端訪問(wèn),這是因?yàn)椴患嫒莸桶姹镜臑g覽器。 一、前言 響應(yīng)式Web設(shè)計(jì)可以讓一個(gè)網(wǎng)站同時(shí)適配多種設(shè)備和多個(gè)屏幕,可以讓網(wǎng)站的布局和功能隨用戶的使用環(huán)境(屏幕大小、輸入方式、設(shè)備/瀏覽器能力)而變化。...
摘要:本文主要介紹一些響應(yīng)式布局容易忽略但又很重要的知識(shí)點(diǎn)。單位不僅僅可以用來(lái)設(shè)置字號(hào),還可以設(shè)置任何盒模型的屬性,比如有一點(diǎn)優(yōu)勢(shì)就是可以和媒體查詢(xún)配合,實(shí)現(xiàn)響應(yīng)式布局運(yùn)用場(chǎng)景如果我們做的頁(yè)面只在移動(dòng)端訪問(wèn),這是因?yàn)椴患嫒莸桶姹镜臑g覽器。 一、前言 響應(yīng)式Web設(shè)計(jì)可以讓一個(gè)網(wǎng)站同時(shí)適配多種設(shè)備和多個(gè)屏幕,可以讓網(wǎng)站的布局和功能隨用戶的使用環(huán)境(屏幕大小、輸入方式、設(shè)備/瀏覽器能力)而變化。...
閱讀 1427·2021-10-14 09:43
閱讀 1019·2021-09-10 10:51
閱讀 1479·2021-09-01 10:42
閱讀 2226·2019-08-30 15:55
閱讀 610·2019-08-30 15:55
閱讀 2374·2019-08-30 14:21
閱讀 1749·2019-08-30 13:04
閱讀 3502·2019-08-29 13:09