Ecco come ho risolto, ed è anche per i menu generati dinamicamente.
presuppongo che questo è il menu generato dinamicamente:
<div id="menu">
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
</div>
e questo è il CSS:
.menu {
width:300px;
text-align: center; /*Set a width and text-align on the main div*/
}
.menu ul{
margin:0;
padding:0;
display:inline-block;
list-style: none; /*Set display to inline-block to the ul*/
}
.menu ul li {
float: left;
margin-right: 1.3em; /*this is the usual*/
padding: 0;
}
Ora, per l'elenco per essere centrato è necessario aggiungere un paragrafo vuoto per cancellare il galleggiante. È possibile farlo manualmente se il menu è statico o utilizzando jQuery
come questo:
$(document).ready(function() {
$("<p class='clear'></p>").insertAfter('.menu-header ul li:last-child');
})
e il CSS del paragrafo .clear
sarà:
p.clear{
clear:both;
margin:0;
padding:0;
height: 0;
width: 0;
}
e il gioco è fatto!
fonte
2012-05-16 10:06:01
ho quelle già e non è ancora centrato. –
Dato che hai spostato tutti gli elementi dell'elenco, l'ul sta diventando un'altezza pari a zero e una larghezza del 100%. – jkelley
È possibile rimuovere il display: in linea sul tuo ul, quindi fare in modo che abbia una larghezza fissa (larghezza: 500px) al centro, anche se questo è un po 'un hack perché l'ul non è regolato correttamente è il valore della casella – jkelley