Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何处理亚像素jQuery.width()结果_Javascript_Jquery_Css_Subpixel - Fatal编程技术网

Javascript 如何处理亚像素jQuery.width()结果

Javascript 如何处理亚像素jQuery.width()结果,javascript,jquery,css,subpixel,Javascript,Jquery,Css,Subpixel,我有一个ul设置为显示内联块,并列出设置为显示内联块的元素 ul的宽度设置为“自动”,因此如果容器收缩(响应性) 列表项被设置为其内容的自动宽度,该宽度被设置为空白nowrap,因此,如果它们不能全部放入一行中,则会下拉到下一行 我试图用jQuery检测是否发生了这种情况。所以我得到了ul的内部宽度(使用width()),并通过得到每个外层宽度()并将它们相加来计算每个li的总宽度。然后我检查总li宽度是否大于ul的内部宽度 但问题是,jQuery返回的nav内部宽度值为933.68000305

我有一个ul设置为显示内联块,并列出设置为显示内联块的元素

ul的宽度设置为“自动”,因此如果容器收缩(响应性)

列表项被设置为其内容的自动宽度,该宽度被设置为空白nowrap,因此,如果它们不能全部放入一行中,则会下拉到下一行

我试图用jQuery检测是否发生了这种情况。所以我得到了ul的内部宽度(使用width()),并通过得到每个外层宽度()并将它们相加来计算每个li的总宽度。然后我检查总li宽度是否大于ul的内部宽度

但问题是,jQuery返回的nav内部宽度值为933.680003051758,列表项的值为934。因此,您可能会认为列表项会被打断到第二行,但事实并非如此!所以我假设浏览器将导航的内部宽度四舍五入为934


我想知道的是,如果我在将值与列表项总宽度进行比较之前对nav的内部宽度进行四舍五入,那么这是否可靠,或者我的函数有时会认为列表项没有中断到第二行,而实际上是这样吗?

您能简要描述一下为什么要观察这一点吗?监听window.resize事件可能代价高昂,如果布局有响应,检测的目的是什么?Mediaqueries可能是一个更好的解决方案。它用于用户可以创建的菜单。所以我想做的是,如果项目分成两行,菜单项的宽度百分比相等,这样它们就可以继续显示在一行上,直到下一个断点,菜单布局从下拉式更改为手风琴式。这是为了,如果可能的话,在平板电脑上的肖像模式,例如,菜单仍然显示为下拉菜单。。。这是对flexNav的一个增强,如果空间允许,列表项不必相同大小(如果用户需要的话),我已经在使用媒体查询来查找中屏幕到小屏幕之间的断点,但这是中到大型的-我不能使用媒体查询,因为我不知道菜单中会有多少项,或者标签会有多长时间,这是一个有趣的问题,尝试在小提琴中模拟类似的东西,但无法在jQuery中生成子像素-只有在我使用getBoundingClientRect的本机计算的情况下,你能举个例子吗?这是我的尝试:@DavidO'Sullivan听起来你想要的是一个
flexbox