JavaScript 如何精準的獲取文字寬高?

時間 2021-06-02 12:55:27

1樓:

getBoundingClientRect()函式啊var span = document.documentElement.querySelector('#span');

var rect = span.getBoundingClientRect();

var width = rect.right-rect.left;

//width 14.443359375 in chrome//width 14.4399995803833 in IE10

2樓:Belleve

一般字型中的 upm 是 1000,也就是說字型中記錄的文字寬度的精度就是 0.001em,不會有更小的了,如下面的「w」,寬度就是 0.764em:

而實際顯示的情況會更加複雜,比如 gridfit 就可以改掉文字的寬度(通過控制額外的頂點),還有捨入誤差的問題,所以用小字號是沒法去測量的。

因此最好的做法是輸出乙個大小為 1000px 的字,然後去 measureText,得到足夠精度的寬度資料,然後去排版之類。

3樓:狂暴猿

我之前也遇過這種問題,怎樣擷取才能最大限度地填滿乙個固定寬度的元素。換乙個思路,乙個個字元寫到元素上,寫乙個判斷一下總長度,如果元素超長了,就退乙個字元,換行繼續寫。。。

4樓:

相容性較真你就輸了。瀏覽器相容問題存在了很長時間,依據我們的經驗,通常針對某乙個核心進行優化,然後提供其它瀏覽器的解決方案。比如:

Chrome瀏覽器作為首選開發目標瀏覽器,然後通過js判斷IE版本,再對應調整。這裡建議多用jQuery,AngularJS,Bootstarp這類處理過相容性的外掛程式。

5樓:魯小夫

要pixel perfect 的話,我有乙個解決方法。

1. 建立乙個足夠大的canvas

2. 把文字 .fillText() 填進去3. .getImageData() 取出所有畫素,遍歷算出有顏色區域的寬高

但是只有現代瀏覽器能用

如何精準推送?

肖業譚 精準推送主要是要根據使用者的使用習慣及相關大資料處理生成使用者畫像,知道使用者的習慣後再去在合適的時間合適的地點合適的場景把合適的訊息推送給合適的使用者,這就是精準化推送 葉助仁 竊以為精準推送要做到的幾點就是 1.有完整的使用者畫像,即使用者本身的各種標籤屬性,以此來判斷使用者對訊息的根本...

如何精準創業?

明哲 創業三步曲 1選擇創業專案 2找到真需求越剛性需求越好 把你的產品放到個各平台驗證是否是真需求,也就是說有沒有有人買單 3做MVP驗證成功後,開始試錯,做小迴圈驗證增長飛輪是否閉環。簡單就這幾部,但裡面包含的內容很多,需要步步拆解,認真研究。 一 牢記創業初心。不忘初心,才能放得始終。創業者在...

如何引流精準客戶?

739唐泊自 同年六月,劉秀髮郾和定陵的援軍趕到,並親率步騎千餘為前鋒,在距離官軍 四 五里遠的地方擺下陣勢。王尋 王邑派數千人迎戰,都被義軍擊敗。義軍初戰告捷,愈戰愈勇,士氣更加旺盛。於是,劉秀組成敢死隊三千人,從昆陽城西突擊敵人中軍兵營。這是王莽軍指揮機關所在地。義軍出其不意,攻其不備,打得官軍...