次の 2 つのいずれかを行う必要があります。すべてのメニュー項目を一定のサイズにすることは、コンテナーのサイズをハードコーディングしているため、コンテナーを満たす最も簡単な方法です。
もう 1 つのオプションは、UL の幅と親 div の幅の差を決定する JavaScript を作成し、パディングを増やして子要素間でそのスペースを均等に分配することです。その理由は、LI がその内容に適合するためです。メニュー全体を拡大するには、コンテンツを拡大する必要があります。ここで私がどのようにそれを行うかを見ることができます。http://jsfiddle.net/Nilpo/GGQ4V/3/
$(window).load(function() {
var container = $('div.menu-main-menu-container');
var menu = $('ul.menu');
var difference = container.width() - menu.width();
if (difference > 0) {
var count = menu.children().length;
var pad = (difference / count) / 2;
var total = 0;
menu.children().each(function(){
var el = $(this);
var lpad = parseInt(el.css('padding-left'), 10);
var rpad = parseInt(el.css('padding-right'), 10);
el.css('padding-left', lpad+pad);
total += lpad+pad;
if ((total+rpad+pad) < difference) {
el.css('padding-right', rpad+pad);
} else {
el.css('padding-right', Math.floor(rpad+pad));
}
total += rpad+pad;
});
}
});
以下を CSS に追加すると、最後のメニュー項目の後のギャップも解消されます。
.menu li:last-child {
margin:0;
}
EDIT:将来のマージンの変更を壊さないように、おそらく右マージンを変更する必要があります。
.menu li:last-child {
margin-right: 0;
}