最近做一个页面时,需要pc的页面在移动端浏览时保持pc的样式缩小。但是发现部分文字被放大了。看上去特别诡异。如下图
绿框是PC端查看时的正常样式,
红框是移动端看的字体放大的诡异样式
是什么原因呢?
后来接触到了一个概念,终于了解了问题的本来面目。这个概念叫做 “Font Boosting”(文字爆炸)
Font Boosting被称为字体提升,也被称为Text Autosizer,Font Inflation.是 Webkit 给移动端浏览器提供的一个特性:当我们在手机上浏览网页时,很可能因为原始页面宽度较大,在手机屏幕上缩小后就看不清其中的文字了。而 Font Boosting 特性在这时会自动将其中的文字字体变大,保证在即不需要左右滑动屏幕,也不需要双击放大屏幕内容的前提下,也可以让人们方便的阅读页面中的文本。 具体大家可以去百度了解一下。
如何解决?
Font Boosting 仅在未限定尺寸的文本流中有效,给元素指定宽高,就可以避免 Font Boosting 被触发
- 可通过指定max-height来避免触发。比如 .class {max-height:100%;}
- .class{text-size-adjust:none;}
- 指定initial-scale = 1
- *{-webkit-text-size-adjust: none;} // 我用的此方法,全局禁止 Webkit内核浏览器的文字大小调整功能