日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Js获取字符串的显示宽度/高度

發(fā)布時間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Js获取字符串的显示宽度/高度 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

重點:
1.在H5頁面,文字大小單位為rem
2.不同的font-family,文字的寬度不一樣
3.文字寬度同時受font-size和font-family影響

思路:
在頁面動態(tài)創(chuàng)建一個節(jié)點,設置節(jié)點的font-size,font-family,還有內(nèi)容,然后獲取它的寬度。節(jié)點寬度必須隨內(nèi)容變化而變化,所以使用display:inline-block 為了避免禪城誤差,使用 getComputedStyle 方法來計算寬度,具體原因看上一篇博客:http://blog.csdn.net/zy1281539626/article/details/78488062

廢話不多說,直接上代碼:

<!DOCTYPE html> <html lang="zh"> <head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="ie=edge" /><title>Document</title> </head> <body><!-- 此span作為對比 --><span id="test" style="display: inline-block;font-size:20px;font-family: arial;">abcdefg</span><script src="jquery.min.js"></script><script>function textSize(fontSize,fontFamily,text){var span = document.createElement("span");var result = {};result.width = span.offsetWidth;result.height = span.offsetHeight;span.style.visibility = "hidden";span.style.fontSize = fontSize;span.style.fontFamily = fontFamily;span.style.display = "inline-block";document.body.appendChild(span);if(typeof span.textContent != "undefined"){span.textContent = text;}else{span.innerText = text;}result.width = parseFloat(window.getComputedStyle(span).width) - result.width;result.height = parseFloat(window.getComputedStyle(span).height) - result.height;return result;}console.log(textSize("20px","Arial","abcdefg"));</script> </body> </html>

對比文字精確寬度如圖:

函數(shù)計算得到的寬度:

寬高非常精確,用這種方法就可以計算在H5頁面中當前字體字號的每個字符的寬度了,也可以一起計算長字符串的寬度。

想了解怎么計算元素精確尺寸的參考上一篇博客:http://blog.csdn.net/zy1281539626/article/details/78488062

總結

以上是生活随笔為你收集整理的Js获取字符串的显示宽度/高度的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。