Android文字圖片無法居中對齊的三個解決方法

在一些項目中會碰到文字和圖片無法居中,即使采用flex或絕對定位(top:-50%, tranform:translateY(50%)仍然無法解決。

這個問題的根本原因在于Android對大部分的非sans-serif字體支持不友好,如Helvetica,導(dǎo)致文字在組件內(nèi)部(如span,label)就不居中。
文字在組件內(nèi)部都不居中了,自然在外面怎么處理都是無法對齊了。

三個解決辦法:規(guī)避或局部修改字體

  1. 都使用圖片代替。字體圖片雖然無法居中對齊,但幸運的是只有很少地方會碰到。(有人會問把圖片改為字體圖標(biāo)呢?沒試過,本質(zhì)是svg,應(yīng)該不能)
  2. 簡化設(shè)計,涉及對齊的都規(guī)避掉。如去掉圖片、文字容器有上下邊框則一定要去掉
  3. 局部修改字體(不完美,只能作最終方案),對文字的直接容器新增二個屬性, lang 和 font-family

<span lang="zh-cmn-Hans" style="font-family: -apply-system-font, sans-serif">文字</span>

但是sans-serif和helvetica字體的顏色是不一樣的,所以可以增加一個透明度opacity為0.8會比較接近helvetica了,故最終的方案是


<span lang="zh-cmn-Hans" style="font-family: -apply-system-font, sans-serif; opacity:0.8">文字</span>

參考文章(原文是對整體的html進(jìn)行修改,其實局部修改就可以了):

Android瀏覽器下line-height垂直居中為什么會偏離? - 周祺的回答 - 知乎

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容