Я пишу сценарий JQuery, который равномерно размещает горизонтальные навигационные ссылки переменного размера внутри содержащей <ul>
, используя margin-right. Алгоритм:
A: Получить ширину <ul>
контейнера.
B: добавить ширину всех <li>
элементов внутри контейнера.
C: вычислить правое поле для каждого предмета, кроме последнего <li>
, вычтя B из A и разделив на количество <li>
предметов в контейнере, минус 1.
Но в моем алгоритме или в моем коде есть недостаток, потому что ссылки переполняют контейнер. Вот мой код Можете ли вы помочь, пожалуйста?
* +1015 * Спасибо,
-Northk
var containerWidth = $('#main-nav ul').width();
var linksWidth = 0;
$('#main-nav ul').children().each(function() {
linksWidth += $(this).width();
});
var linkSpacing = Math.floor((containerWidth - linksWidth) / ($('#main-nav ul').children().length - 1));
$('#main-nav ul').children().css('margin-right', linkSpacing + "px");
$('#main-nav ul').children().filter(":last").css('margin-right', 0);
А HTML выглядит так:
<nav id="main-nav">
<ul>
<li>
<a href="#">home</a>
</li>
<li>
<a href="#">link-number-2</a>
</li>
</ul>
</nav>