如何使用Javascript(jQuery)确定'line-height'?

20 javascript jquery dom

好吧,遇到了一个插件行高编码的需要,那么,你能给出一个建议吗?谢谢)

小智 31

您无法确保跨浏览器获得以像素为单位的计算行高.有时值是"正常"或"继承",它在Firefox中计算,但在IE中不计算,例如.解决此问题的一种解决方法(当然取决于您的用例)是获取计算出的字体大小(您可以看到),并将其乘以1.5,这是相当标准的:

var fontSize = $(el).css('font-size');
var lineHeight = Math.floor(parseInt(fontSize.replace('px','')) * 1.5);
Run Code Online (Sandbox Code Playgroud)

是的,它有点粗略,但它可以正常工作,例如根据一定数量的文本行确定元素的正确高度.请注意,您可以/应该使用您在网站上使用的任何标准行高/字体大小比例替换1.5.如果您不知道,可以通过检查firebug中的任何复制元素并查看计算出的a)font-size和b)line-height来查找.然后,用b/a替换1.5.:-)

希望这有用!


小智 18

$('selector').css('line-height');
Run Code Online (Sandbox Code Playgroud)

  • 错误.在歌剧院,它返回'正常'. (23认同)
  • 小心 - 在许多浏览器中,你得到一个看起来像`16px`的值,但在IE中,你有时会得到一个像`1.2`这样的裸数`. (3认同)