Necesito centrar alinear un menú horizontal.
He probado varias soluciones, incluida la combinación de inline-block
/ block
/ center-align
etc., pero no he tenido éxito.
Aquí está mi código:
<div class="topmenu-design">
<!-- Top menu content: START -->
<ul id="topmenu firstlevel">
<li class="firstli" id="node_id_64"><div><a href="#"><span>Om kampanjen</span></a></div></li>
<li id="node_id_65"><div><a href="#"><span>Fakta om inneklima</span></a></div></li>
<li class="lastli" id="node_id_66"><div><a href="#"><span>Statistikk</span></a></div></li>
</ul>
<!-- Top menu content: END -->
</div>
ACTUALIZAR
Sé centrar la alineación ul
dentro de div
. Eso se puede lograr utilizando la sugerencia de Sarfraz. Pero los elementos de la lista siguen flotando a la izquierda dentro de ul
.
¿Necesito Javascript para lograr esto?
Respuestas:
Desde http://pmob.co.uk/pob/centred-float.htm :
Código
fuente
position: relative
menú principal cambia el comportamiento delposition:absolute
menú secundario.#buttons
id en la pregunta de OP? ¿Dónde hay aviso, en su respuesta, de que tiene que usarlo? ¿Cómo puede aceptarse esto y ser la respuesta más votada, si en realidad no está respondiendo la pregunta, solo citando algún blah-blah fuera de tema de algún enlace?Esto funciona para mi. Si no he interpretado mal su pregunta, puede intentarlo.
fuente
text-align: left;
Con CSS3 flexbox. Sencillo.
fuente
Esta es la forma más simple que encontré. Usé tu html. El relleno es solo para restablecer los valores predeterminados del navegador.
fuente
Aquí hay un buen artículo sobre cómo hacerlo de una manera bastante sólida, sin ningún truco y soporte completo para todos los navegadores. Funciona para mi:
-> http://matthewjamestaylor.com/blog/beautiful-css-centered-menus-no-hacks-full-cross-browser-support
fuente
Prueba esto:
fuente
Hazlo asi :
Y el CSS:
fuente
Como muchos de ustedes, he estado luchando con esto por un tiempo. La solución finalmente tuvo que ver con el div que contiene el UL. Todas las sugerencias sobre la alteración del relleno, el ancho, etc. de la UL no tuvieron efecto, pero lo siguiente sí.
Se trata de la
margin:0 auto;
en el div que contiene. Espero que esto ayude a algunas personas, y gracias a todos los que ya sugirieron esto en combinación con otras cosas.fuente
Demostración: http://codepen.io/grantex/pen/InLmJ
Omg mucho más limpio.
fuente
En general, la forma de centrar un elemento de nivel negro (como a
<ul>
) es usar lamargin:auto;
propiedad.Para alinear texto y elementos de nivel en línea dentro de un elemento de nivel de bloque, utilice
text-align:center;
. Entonces todos juntos algo así como ...... Deberia trabajar.
El caso marginal es Internet Explorer6 ... o incluso otros IEs cuando no se usa a
<!DOCTYPE>
. IE6 alinea incorrectamente los elementos de nivel de bloque usandotext-align
. Entonces, si está buscando admitir IE6 (o no está usando a<!DOCTYPE>
) su solución completa es ...Como nota al pie, creo que
id="topmenu firstlevel"
no es válido ya que unid
atributo no puede contener espacios ...? De hecho, la recomendación w3c define elid
atributo como un tipo de 'nombre' ...fuente
Usé la propiedad display: inline-block: la solución consiste en usar un contenedor con ancho fijo. En el interior, el bloque ul con el bloque en línea para la visualización. Usando esto, ¡el ul solo toma el ancho para el contenido real! y finalmente margen: 0 automático, para centrar este bloque en línea =)
fuente
Yo uso el código jquery para esto. (Solución alternativa)
fuente
ul como tabla en línea corrige el problema con. Utilicé el div principal para alinear el texto al centro. de esta manera se ve bien incluso en otros idiomas (traducción, ancho diferente)
fuente
La solución de @ Robusto fue la más simple para lo que estaba tratando de hacer, le sugiero que la use. Estaba tratando de hacer lo mismo para las imágenes en una lista desordenada para hacer una galería ... Hice un js violín para perder el tiempo con ella. Siéntase libre de probarlo aquí.
[se configuró usando el código de muestra de robusto]
HTML:
CSS:
fuente
Es una aproximación decente en pantallas grandes. No es bueno, pero una buena solución sucia.
fuente
¡Que todos!
fuente