安卓 webview 的字體大小在小於 12 像素的時候沒法使用行高來垂直居中html
ps:目前在微信等應用都存在該問題,而在最新的移動端 Chrome 瀏覽器上無該問題(截止本文編寫時間,微信客戶端的 chrome 版本爲 57,chrome 版本爲 70)。android
table 佈局:文本偏上git
<div class="solution" style="display: table; height: 16px;"> <span style=" display: table-cell; font-size: 10px; vertical-align: middle;">hot 熱門</span> </div>
flex 佈局:文本偏上github
<div class="solution" style="display: inline-flex; align-items: center; height: 16px; line-height: 1; font-size: 10px;"> <span>hot 熱門</span> </div>
transform 縮放:文本居中了,可是 transform 不能還原元素在 dom 上的佔用區域大小web
<div class="solution" style="height: 32px; line-height: 32px; font-size: 20px; transform: scale(0.5, 0.5); transform-origin: left top;"> <span>hot 熱門</span> </div>
zoom 縮放:文本偏上chrome
<div class="solution" style="height: 32px; line-height: 32px; font-size: 20px; zoom: 0.5;"> <span>hot 熱門</span> </div>
固定高度+內邊距+行高設定爲字體大小:文本偏上瀏覽器
<div class="solution" style="box-sizing: border-box; height: 16px; padding: 3px 0; line-height: 10px; font-size: 10px;"> <span>hot 熱門</span> </div>
固定高度+內邊距+行高設爲 normal
:文本偏上微信
<div class="solution" style="box-sizing: border-box; height: 16px; padding: 3px; line-height: normal; font-size: 10px;"> <span>hot 熱門</span> </div>
內邊距+行高設爲 normal
:文本居中,但在部分客戶端上不居中dom
<div class="solution" style="box-sizing: border-box; padding: 2px; line-height: normal; font-size: 10px;"> <span>hot 熱門</span> </div>
行高+字體大小設爲 initial
:文本居中,在最新的 Chrome 瀏覽器上不居中ide
<div class="solution" style="line-height: 16px; font-size: initial;"> <span style="font-size: 10px;">hot 熱門</span> </div>
在不一樣的安卓客戶端上測試上述方法發現如下三個方法或許能夠幫助解決居中問題,咱們能夠根據實際客戶端的支持狀況來選擇其中一種方式來解決沒法居中問題。
transform 縮放
<div class="solution" style="height: 32px; line-height: 32px; font-size: 20px; transform: scale(0.5, 0.5); transform-origin: left top;"> <span>hot 熱門</span> </div>
內邊距+行高設爲 normal
<div class="solution" style="box-sizing: border-box; padding: 2px; line-height: normal; font-size: 10px;"> <span>hot 熱門</span> </div>
行高+字體大小設爲 initial
<div class="solution" style="line-height: 16px; font-size: initial;"> <span style="font-size: 10px;">hot 熱門</span> </div>