在jQuery中将元素的宽度作为浮点

时间:2012-12-13 04:03:41

标签: jquery html css

我一直在寻找一种方法来获得元素的宽度,而不是圆角。想要这个的原因是我有几个元素浮动显示内联块,我试图自动调整其中的文本,以便他们用尽容器div的整个宽度。我是这样做的:

  1. 选择一个小文字大小,例如1
  2. 制作所有尺寸
  3. 的文字
  4. 添加所有浮动元素的宽度
  5. 如果小于容器的宽度,请将字体大小增加一个小值
  6. 重复2-4,直至达到最大尺寸
  7. 问题在于总是留下未使用的空间。我相信这是因为当我将字体大小增加少量(即0.01)以获得准确的大小时。元素的宽度不会改变,因为它是向下舍入的。我可以保持递增,它们不会改变,直到它决定向上舍入然后到总宽度超过限制。这是一个JSFiddle显示我在说什么:

    http://jsfiddle.net/Pkws3/

    javascript可能有点令人困惑,但基本上是为了节省时间,它以fontsize的大增量开始,然后当它达到目标大小时,它会使增量更小更准确。

    我尝试过使用:

    $(this).width()
    parseFloat($(this).css("width"))
    window.getComputedStyle
    

    但它们似乎都不起作用。

2 个答案:

答案 0 :(得分:1)

这对我有用:

$(this)[0].getBoundingClientRect().width

来自ssorallen:https://stackoverflow.com/a/18341704/299408

答案 1 :(得分:-1)

如果您想将浮点数转换为while数,您可以修剪小数,如下所示:$(this).width().toFixed(0)

或者你可以通过将不同的数字传递到toFixed来将其修剪为不同的小数位数。