javascript - 我可以测量元素的部分像素精确宽度吗

标签 javascript jquery html css

这个问题困扰我很久了。我想做一些简单的事情,将 li 元素 float 在 ul 容器中,并赋予 li 元素悬停效果。代码如下所示: 所有css已经休息,元素是显示 block ,并且类clear在元素后面添加一个“”清除显示 block

<ul class="clear">
  <li>one</li>
  <li>two</li>
  <li>three</li>
</ul>

ul > * { float: left; border: 1px solid black  }
li{ padding: 10px;}
li:hover{ background-color: white; }    

现在由于某种原因(也许是我的字体)ul的宽度在不同的浏览器中发生变化,所以我无法硬编码ul的宽度以完美地适应所有li的;美好的。所以我所做的就是在所有内容加载之后,我测量每个 li 的宽度并将其相加,得到 ul 的宽度。

然而,这也会失败,因为 jquery.width()/offsetwidth/.outerWidth 仅返回整数,并且某些元素具有部分像素,例如 .34px,并且宽度稍微太宽(导致间隙)或太小并且 float 元素会下降到下一行。

有没有一种方法可以更准确地测量宽度?

最佳答案

这应该可以为您完成,请参阅 fiddle 例如 https://jsfiddle.net/c259LrpL/28/

$(".clear")[0].getBoundingClientRect().width

关于javascript - 我可以测量元素的部分像素精确宽度吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37126731/

相关文章:

javascript - 将天气小部件嵌入到 Google map 的信息窗口中

javascript - 从 JavaScript 加载页面时调用 angularJS 函数

javascript - Creative SDK Image Editor (Web) 加载图像,等待,然后图像消失(无实时预览)

javascript - JS 获取宽度不按预期工作

javascript - 如何使用function属性作为onclick事件(input元素)的属性?

javascript - 为什么 getElementsByClassName 不起作用而 getElementById 起作用?

javascript - Jquery.Click() 用了一次就不行了

javascript - 从数组创建 li data-role=list-divider

javascript - 如何在用户输入时显示提示框或工具提示?

html - 按钮未与重叠展示框 CSS/HTML 的底部对齐