Eu sei que essa pergunta foi feita muitas vezes. Mas todos são códigos complexos e as soluções diferem com base nos seus requisitos específicos.
Execute este código muito simples no Tailwind Playground :
<div class="h-48 w-full bg-red-400">
<a class="mx-auto inline-flex items-center bg-blue-400 px-8 py-5">Hello</a>
</div>
O a
não será colocado no meio. O mx-auto
não funciona.
Alguém pode me dizer por que isso acontece? E o que devo fazer para colocá-lo no meio.
PS Não posso usar text-center
no elemento pai.
Não se pode usar
margin-left: auto; margin-right: auto
para centralizar um elemento embutido. Para centralizá-lo sem usartext-center
no pai, considere aplicardisplay: flex
em vez dedisplay: inline-flex
alterar ainline-flex
classe paraflex
e depois:Aplicando
justify-content: center
viajustify-center
para que o texto Olá seja centralizado:Ou
width: max-content
viaw-max
para<a>
centralizar o próprio elemento:A classe mx-auto deve funcionar para centralizar o elemento horizontalmente dentro de seu pai. No entanto, há um problema comum que pode impedir que ele funcione conforme o esperado: o elemento pai deve ter uma largura definida para que o mx-auto centralize seu elemento filho.
No seu código, o pai tem uma classe h-48 w-full bg-red-400, mas w-full faz com que ele ocupe toda a largura do contêiner pai. Para usar mx-auto efetivamente para centralização, você deve remover w-full ou especificar uma largura fixa para parent . Aqui está uma versão atualizada do seu código com w-full removido:
Agora, o elemento deve estar centralizado horizontalmente dentro do vermelho. Se você ainda encontrar problemas, verifique se há alguma regra ou estilo CSS conflitante que possa estar afetando o layout.