Here is a jQuery solution which evenly spreads the links to 100% of the confining element.
Leftmost and Rightmost links are butted up to the ends.
jQuery:
pad_menu() increases padding until the last li floats below the first
then decreases padding by one, so the last li is back on the same line.
var i stops infinite loop (which should never happen anyhow).
$(document).ready(function(){
pad_menu();
});
function pad_menu() {
var i = 0;
var pos_first;
var pos_last;
var pad = $('#menu li').css('padding-left').replace(/[px]/, '');
do {
pad++;
$('#menu li').css('padding-left', pad);
$('#menu .first-item').css('padding-left', 0);
$('#menu .last-item').css('padding-left', 0);
pos_first = $('#menu .first-item').position();
pos_last = $('#menu .last-item').position();
} while (pos_first.top == pos_last.top && ++i < 100)
$('#menu li').css('padding-left', pad-1);
$('#menu li.first-item').css('padding-left', 0);
$('#menu li.last-item').css('padding-left', 0);
}
HTML & CSS:
ul#menu li {
display: inline;
float: none;
padding: 5px 0px 5px 20px;
}
ul#menu li.first-item, ul#menu li.last-item {
padding-left: 0px;
}
<ul id='menu' class='cols'>
<li class='first-item'><a href='page1.html'>Page 1</a>
<li><a href='page2.html'>Page 2</a></li>
<li><a href='page3.html'>Page 3</a></li>
<li><a href='page4.html'>Page 4</a></li>
<li><a href='page5.html'>Page 5</a></li>
<li><a href='page6.html'>Page 6</a></li>
<li><a href='page7.html'>Page 7</a></li></a></li>
<li class='last-item'></li>
</ul>