1

我希望有人可以帮助解决这个问题。

我编写了一个函数,它根据现有列表项的数量和父容器中的剩余宽度为导航中的最终 li 项添加宽度。

这适用于文档加载,并且如果调整了文档的大小并单击了 href,但在实际调整大小期间不会重新计算元素的大小。

我做了一个小提琴来帮助说明这一点。

有谁知道如何在调整窗口大小时动态进行计算?

这是js

 $(document).ready(calcWidth);
$(document).resize(calcWidth);

function calcWidth(){
    // get array of all the list items in the nav
    var $listWidth = $('ul#main-nav li').map(function(){
        return $(this).width();
    }).get();
    var $itemCount = $('#main-nav li').length; //this works as margin-right is set to 1px
    var $contWidth = $('#main-nav').width(); // get the full container width
    var $sum = 0;
    $.each($listWidth,function(){$sum+=parseFloat(this) || 0;});
    $('ul#main-nav li.final a').css({
        width:  $contWidth - $sum - $itemCount, //set the width of the final li to be the total container minus the sum of the existing li elements
        height: '12px'
    });
}

如果您需要在这里发布更多代码,请告诉我,但这一切都在小提琴中。

谢谢卢克

4

1 回答 1

2

您不需要使用 javascript 执行此操作。

移动clearfixUL 上的类(因为列表项是浮动的),在 UL 上添加紫色背景,并为列表项添加 1px 白色右边框。您可以删除最后一个 LI。

看这里

于 2013-02-08T13:02:27.467 回答