这个问题困扰我很久了。我想做一些简单的事情,将 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/