3

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

  1. 选择一个小的文本大小,例如 1
  2. 制作所有大小的文本
  3. 将所有浮动元素的宽度相加
  4. 如果它小于容器的宽度,则将字体大小增加一个小值
  5. 重复 2-4 直到达到最大尺寸

问题是总是有剩余的空间没有被使用。我相信这是因为当我将字体大小增加少量(即 0.01)以获得准确的大小时。元素的宽度不会改变,因为它是向下舍入的。我可以继续增加,直到它决定四舍五入然后总宽度超过限制时它们才会改变。这是一个显示我在说什么的 JSFiddle:

http://jsfiddle.net/Pkws3/

javascript 可能有点混乱,但基本上是为了节省时间,它从字体大小的大增量开始,然后当它达到目标大小时,它会使增量更小以更准确。

我试过使用:

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

但它们似乎都不起作用。

4

2 回答 2

1

This worked for me:

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

From ssorallen: https://stackoverflow.com/a/18341704/299408

于 2013-08-30T20:22:43.130 回答
-1

如果要将浮点数转换为 while 数,则可以像这样修剪小数:$(this).width().toFixed(0)

或者,您可以通过将不同的数字传递给toFixed.

于 2012-12-13T05:27:29.433 回答