Preciso centralizar o alinhamento de um menu horizontal.
Eu tentei várias soluções, incluindo a combinação de inline-block
/ block
/ center-align
etc., mas não consegui.
Aqui está o meu 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>
ATUALIZAR
Eu sei como centralizar o alinhamento ul
dentro do div
. Isso pode ser feito usando a sugestão de Sarfraz. Mas os itens da lista ainda estão flutuando à esquerda no ul
.
Preciso de Javascript para fazer isso?
Respostas:
Em http://pmob.co.uk/pob/centred-float.htm :
Código
fonte
position: relative
menu principal altera o comportamento doposition:absolute
submenu.#buttons
id na pergunta do OP? Onde há aviso, em sua resposta, de que ele precisa usá-lo? Como isso pode ser aceito e ter a resposta mais votada, se você realmente não está respondendo à pergunta, citando apenas algum blá-blá fora de tópico em algum link?Isso funciona para mim. Se eu não entendi mal sua pergunta, você pode tentar.
fonte
text-align: left;
Com CSS3 flexbox. Simples.
fonte
Esta é a maneira mais simples que encontrei. Eu usei o seu html. O preenchimento é apenas para redefinir os padrões do navegador.
fonte
Aqui está um bom artigo sobre como fazê-lo de uma maneira bastante sólida, sem hacks e suporte completo para vários navegadores. Funciona para mim:
-> http://matthewjamestaylor.com/blog/beautiful-css-centered-menus-no-hacks-full-cross-browser-support
fonte
Tente o seguinte:
fonte
Faça isso deste modo :
E o CSS:
fonte
Como muitos de vocês, estou lutando com isso há um tempo. A solução finalmente teve a ver com o div que contém o UL. Todas as sugestões sobre alteração de preenchimento, largura etc. do UL não tiveram efeito, mas o seguinte ocorreu.
É tudo sobre o
margin:0 auto;
na div contendo. Espero que isso ajude algumas pessoas, e obrigado a todos que já sugeriram isso em combinação com outras coisas.fonte
Demo - http://codepen.io/grantex/pen/InLmJ
Omg muito mais limpo.
fonte
De um modo geral, a maneira de centralizar um elemento de nível de preto (como a
<ul>
) é usar amargin:auto;
propriedadePara alinhar elementos de nível de texto e de linha dentro de um elemento de nível de bloco, use
text-align:center;
. Então, todos juntos algo como ...... Deveria trabalhar.
O caso adicional é o Internet Explorer6 ... ou mesmo outros IEs quando não estiver usando um
<!DOCTYPE>
. O IE6 alinha incorretamente os elemnts no nível do bloco usandotext-align
. Portanto, se você deseja oferecer suporte ao IE6 (ou não está usando a<!DOCTYPE>
), sua solução completa é ...Como nota de rodapé, acho
id="topmenu firstlevel"
inválido, pois umid
atributo não pode conter espaços ...? Na verdade, a recomendação do w3c define oid
atributo como um tipo de 'nome' ...fonte
Usei a propriedade display: inline-block: a solução consiste em usar um invólucro com largura fixa. No interior, o bloco ul com o bloco embutido para exibição. Usando isso, o ul apenas assume a largura do conteúdo real! e finalmente margem: 0 auto, para centralizar este bloco inline =)
fonte
Eu uso o código jquery para isso. (Solução alternativa)
fonte
ul como tabela em linha corrige o problema com. Eu usei a div pai para alinhar o texto ao centro. desta forma, fica bem mesmo em outras línguas (tradução, largura diferente)
fonte
A solução de @ Robusto foi a mais simples para o que eu estava tentando fazer, sugiro que você a use. Eu estava tentando fazer o mesmo com as imagens em uma lista não ordenada para fazer uma galeria ... Eu fiz um violão para brincar com ela. Sinta-se livre para experimentá-lo aqui.
[foi configurado usando o código de exemplo de robusto]
HTML:
CSS:
fonte
É uma aproximação decente em telões. Não é bom, mas uma boa solução suja.
fonte
Isso tudo!
fonte