Javascript 使用jquery获取跨距高度

Javascript 使用jquery获取跨距高度,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试将一系列跨度垂直居中放置在其父LIs中 返回的高度值都是相同的,这意味着此代码一定有问题,因为某些跨距位于两行上 不确定获取内联元素(span)的高度是否有问题,任何建议都值得赞赏 HTML: 将跨度设为元素将使其具有高度: <style> span.menu-item { display:block /* or inline-block */; } </style> span.menu-item{display:block/*或inline block*/

我正在尝试将一系列跨度垂直居中放置在其父LIs中

返回的高度值都是相同的,这意味着此代码一定有问题,因为某些跨距位于两行上

不确定获取内联元素(span)的高度是否有问题,任何建议都值得赞赏

HTML:

将跨度设为元素将使其具有高度:

<style> span.menu-item { display:block /* or inline-block */; } </style>
span.menu-item{display:block/*或inline block*/;}
作为替代方案,您可以将跨度更改为本机跨度。

将跨度设置为元素将使其具有高度:

<style> span.menu-item { display:block /* or inline-block */; } </style>
span.menu-item{display:block/*或inline block*/;}

作为替代方案,您可以将范围更改为本地范围。

我不确定目标是什么,但我有一个答案,解释为什么警报总是相同的。您正在使用
.each()
迭代
li
元素,但在每次迭代中,您没有引用当前项,因此始终检索第一个匹配元素的高度。试试这个:


通过设置
行高,菜单项的垂直居中可能会更容易些

我不确定目标是什么,但我确实有一个答案来解释为什么警报总是相同的。您正在使用
.each()
迭代
li
元素,但在每次迭代中,您没有引用当前项,因此始终检索第一个匹配元素的高度。试试这个:


通过设置
行高度,菜单项的垂直居中可能会更容易,我不确定这是否适用于您的代码,但通过使
  • 元素内联块并垂直居中,您可以避免使用jQuery:

    li.nav-level-2-item
    {
        display: inline-block;
        *display: inline; *zoom: 1; /* IE 6-7 hack */
        vertical-align: middle;
    }
    
    或其他可能的解决方案:

    li.nav-level-2-item
    {
        display: table;
    }
    
    li.nav-level-2-item a
    {
        display: table-cell;
        vertical-align: middle;
    }
    

    对于其他仅限于CSS的解决方案,请查看并。

    我不确定这是否适用于您的代码,但您可以通过使
  • 元素内联块并垂直居中来避免使用jQuery:

    li.nav-level-2-item
    {
        display: inline-block;
        *display: inline; *zoom: 1; /* IE 6-7 hack */
        vertical-align: middle;
    }
    
    或其他可能的解决方案:

    li.nav-level-2-item
    {
        display: table;
    }
    
    li.nav-level-2-item a
    {
        display: table-cell;
        vertical-align: middle;
    }
    

    对于其他仅限于CSS的解决方案,请查看和。

    Spans没有高度您的目标是什么?你想做什么?改用DIVs,@YuriyGalanter是正确的-span本身是无量纲元素,它会根据周围的内容进行更新。。。或者更好的方法是,利用您已经存在的A标记:)我已将跨距更改为div来尝试和诊断,仍然无法垂直居中,无论它们是跨距还是div。@j08691尝试垂直居中父lisSpans中的跨距没有高度您的目标是什么?你想做什么?改用DIVs,@YuriyGalanter是正确的-span本身是无量纲元素,它会根据周围的内容进行更新。。。或者更好的是,利用您已经存在的A标记:)我已将跨度更改为div,以尝试进行诊断,仍然无法垂直居中,无论它们是跨距还是div。@j08691试图垂直居中父lisI中的跨距,我应该在代码中包含css,但感谢您指出这一点。我应该在代码中包含css,但感谢您指出这一点。您完全正确,通过直接使用jquery解决方案,我已经完成了很多事情。使用纯css是有可能实现的……谢谢你说的绝对正确,我直接使用jquery解决方案,完成了很多事情。这是可能实现与纯css…谢谢