重点:
1.在H5页面,文字大小单位为rem
2.不同的font-family,文字的宽度不一样
3.文字宽度同时受font-size和font-family影响

思路:
在页面动态创建一个节点,设置节点的font-size,font-family,还有内容,然后获取它的宽度。节点宽度必须随内容变化而变化,所以使用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>

对比文字精确宽度如图:

函数计算得到的宽度:

宽高非常精确,用这种方法就可以计算在H5页面中当前字体字号的每个字符的宽度了,也可以一起计算长字符串的宽度。

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

Js获取字符串的显示宽度/高度相关推荐

  1. JS获取各种屏幕的宽度和高度

    JS获取各种屏幕的宽度和高度 描述 用法 网页可见区域宽 document.body.clientWidth 网页可见区域高 document.body.clientHeight 网页可见区域宽 do ...

  2. JS获取元素的大小(高度和宽度)

    JS获取元素的大小(高度和宽度) 在 JavaScript中,使用下面 3 组属性可以获取元素的高度和宽度.如表所示. 元素尺寸属性 说明 clientWidth 获取元素可视部分的宽度,即 CSS ...

  3. js获取浏览器窗口页面宽度、高度的方法 kaki 的博客

    js获取浏览器窗口页面宽度.高度的方法 不多说,直接上代码 alert($(window).height()); //浏览器时下窗口可视区域高度 alert($(document).height()) ...

  4. 原生js获取html元素高度,js获取页面及个元素高度、宽度的代码

    网页可见区域宽: document.body.clientWidth; 网页可见区域高: document.body.clientHeight; 网页可见区域宽: document.body.offs ...

  5. js获取当前时间显示在页面上

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. js 获取字符串中最后一个斜杠前面/后面的内容

    js 获取字符串中最后一个斜杠后面的内容: var str = "/asdasf/asfaewf/agaegr/trer/rhh"; var index = str .lastIn ...

  7. [js] 获取浏览器当前页面的滚动条高度的兼容写法

    [js] 获取浏览器当前页面的滚动条高度的兼容写法 document.documentElement.scrollTop || document.body.scrollTop; 个人简介 我是歌谣,欢 ...

  8. js获取字符串的字节数

    2012-08-28 16:50 js获取字符串的字节数 var lenFor = function(str){ var byteLen=0,len=str.length; if(str){ for( ...

  9. js获取字符串字符数和字节数,注意:区分字符串字符数和字节数(编程环境UTF-8的情形)

    1.字符串字符数: 直接str.length即可获取 2.字符串字节数: js获取字符串字节长度小技巧:https://blog.csdn.net/likun952345407/article/det ...

最新文章

  1. apn java_android设置移动联通电信wap接入点
  2. 一、pytorch搭建实战以及sequential的使用
  3. AI算法的进步超越了摩尔定律!
  4. [分布式训练] 单机多卡的正确打开方式:Horovod
  5. 王道计算机考研课件,王道考研计算机组成原理课件ppt
  6. 怎么能让宝贝快点入睡?
  7. 大数据讲课笔记1.5 使用Vim编辑器
  8. 洛谷OJ P3368 【模板】树状数组 2
  9. JavaScript制作页面跳转效果
  10. oracle -varchar ,varchar2
  11. 中国科学院研制的开放式超导磁共振成像磁体系统
  12. vue创建项目报错Failed to get response from /vue-cli-version-marker 只有一个package.json文件
  13. python批量压缩tif文件
  14. JAVA基础_数组(一维数组)
  15. 上dj是什么意思_这个世界上根本没有迪迦奥特曼什么梗?抖音迪迦奥特曼的梗什么意思...
  16. upyun java_java-sdk
  17. vue + elemen可远程搜索select选择器的封装(思路及源码分享)
  18. GetLastError 返回值意义
  19. web页面调用打印机不预览直接执行打印
  20. Python/excel:正态分布直方图

热门文章

  1. 程序员愤怒了:我们不仅要当管理者还要当CEO!
  2. 关于telnet: connect to address 190.168.6.6: No route to host 报错处理
  3. ITIL V3 服务转换篇 之 服务转换阶段的组织形式
  4. 即时通讯 我穿上球鞋
  5. 【源码】2012年斗地主算法大全
  6. 《飞鸽传书》把写程序和文学创作相提并论
  7. 局域网聊天2011记住
  8. C++如何使用MySQL数据库
  9. 给缺少Python项目实战经验的人,赶紧收藏!
  10. 如何高效率学Web前端 怎么规划前端学习路线