Aquí hay una solución de jQuery que distribuye uniformemente los enlaces al 100% del elemento de confinamiento. Los enlaces situados más a la izquierda y más a la derecha se unen hasta los extremos.
jQuery:
pad_menu() aumenta relleno hasta el último li flota por debajo de la primera luego disminuye relleno por uno, por lo que la última li está de vuelta en la misma línea. var interrumpe el ciclo infinito (lo que nunca debería ocurrir de todos modos).
$(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>
por lo que desea caber tantos elementos de navegación dentro de 400px o el ancho no importará? Puedo decir que puede necesitar usar Javascript para lograr eso. –
@JaspreetChahal Sí, creo que ... todavía no sabría cómo hacerlo, ¿hay alguna forma de calcular el ancho de una palabra en js?O tendríamos que simularlo en un div invisible y tomar el ancho de ese div ... –
Bueno, para mí necesitarás tener algunos límites duros en el elemento externo y luego renderizar tus elementos internos. Aquí hay una buena publicación que puede leer para obtener anchos de texto http://stackoverflow.com/questions/118241/calculate-text-width-with-javascript en js. He aquí algo que hice en jsfiddle http://jsfiddle.net/pkK8C/27/ pero que no se acomodará si los enlaces exceden cierto límite –