這篇文章給大家介紹android中怎么解決中文字體向上偏移,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),武昌企業(yè)網(wǎng)站建設(shè),武昌品牌網(wǎng)站建設(shè),網(wǎng)站定制,武昌網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,武昌網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。1.bug 出現(xiàn)
目前在開(kāi)發(fā) webapp,在調(diào)試的時(shí)候,發(fā)現(xiàn)項(xiàng)目里面的中文有一點(diǎn)向上偏移。具體表現(xiàn)為:使用開(kāi)發(fā)者工具去查看元素,元素的真實(shí)高度和位置與文字不同。列如,一個(gè)span
的font-size
和line-height
都設(shè)置為16px
,在調(diào)試時(shí),元素的高度確實(shí)是16px
,但是,中文的高度看起來(lái)并不止16px
,而且顯示的位置明顯超出了元素的尺寸范圍,向上偏移。
開(kāi)始的時(shí)候還以為是樣式導(dǎo)致的,于是嘗試各種修改 css,但是完全沒(méi)有用。后來(lái)在網(wǎng)上看到用“定位”或者“上邊距”來(lái)強(qiáng)制文字的位置,但是發(fā)現(xiàn)這個(gè)方法太麻煩了,最終放棄這個(gè)方案。
后來(lái)想到使用的是ubuntu
,懷疑可能是系統(tǒng)默認(rèn)字體的原因?qū)е铝诉@個(gè)問(wèn)題。于是下載了一個(gè)字體文件(用的是“思源黑體”)。然后配置全局字體,發(fā)現(xiàn)可以解決這個(gè)問(wèn)題。
2.第二個(gè)問(wèn)題出現(xiàn)
雖然使用自定義字體解決了中文文字偏移的問(wèn)題,但是由于字體文件太大導(dǎo)致性能很不理想。無(wú)論是將字體文件放到服務(wù)器還是使用 cdn 都不理想。最終找到了fontmin這個(gè)插件。這個(gè)插件的原理是將字體文件中的字符集
進(jìn)行篩選,生成的新的字體文件中,只包含要使用到的文字字符集。
3.最終的方案
雖然fontmin
可以進(jìn)行字符集篩選,但是項(xiàng)目中到底需要哪些中文文字是不確定的。但沒(méi)有關(guān)系,經(jīng)過(guò)實(shí)驗(yàn),使用一個(gè)只有0
這個(gè)字符集的字體文件同樣可以解決我們最初的問(wèn)題。下面來(lái)看實(shí)現(xiàn)步驟。
3.1 字體下載
到網(wǎng)上下載一個(gè)中文字體,這里我使用的是google fonts。先測(cè)試一下,直接引用這個(gè)字體后,是否可以解決字體偏移??梢缘脑?huà),進(jìn)行下一步。
3.2 安裝 fontmin
這里不推薦全局安裝,在項(xiàng)目里面安裝即可。
npm install fontmin -D
然后編寫(xiě)配置文件。這里我是寫(xiě)在項(xiàng)目根目錄的。
// fontmin-config.js var Fontmin = require("fontmin") var srcPath = "./src/assets/fonts/my-font.ttf" // 字體源文件 var destPath = "./src/assets/font-output/" // 輸出路徑 var text = "0" // 篩選的字符集 var fontmin = new Fontmin() .src(srcPath) // 輸入配置 .use( Fontmin.glyph({ text: text }) ) .dest(destPath) // 輸出配置 fontmin.run(function(err, files, stream) { if (err) { console.error(err) } console.log("done") })
然后執(zhí)行
cd your-project-dir node ./fontmin-config.js
3.3 配置 css
// global.css @font-face { font-family: "my-font"; src: url("../fonts/my-font.ttf"); } html,body{ font-family: "my-font", sans-serif; }
關(guān)于android中怎么解決中文字體向上偏移就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。