我知道这个问题已经被问过很多次了。但它们都是复杂的代码,并且解决方案根据其具体要求而有所不同。
请在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>
不会a
放在中间。不起作用mx-auto
。
有人可以告诉我为什么会这样吗?我该怎么做才能把它放在中间。
PS 我不能text-center
在父元素上使用。
不能用于
margin-left: auto; margin-right: auto
使内联元素居中。要使其居中而不text-center
在父级上使用,请考虑应用display: flex
而不是通过将类display: inline-flex
更改为 然后执行以下任一操作:inline-flex
flex
应用
justify-content: center
viajustify-center
使Hello文本居中:或者
width: max-content
通过w-max
让<a>
元素本身居中:mx-auto 类应该使元素在其父级中水平居中。但是,有一个常见问题可能会阻止它按预期工作:父元素必须具有定义的宽度,mx-auto 才能使其子元素居中。
在您的代码中,父容器具有 h-48 w-full bg-red-400 类,但 w-full 使其占据其父容器的整个宽度。要有效地使用 mx-auto 进行居中,您应该删除 w-full 或为父级指定固定宽度。这是删除了 w-full 的代码的更新版本:
现在,该元素应该在红色内水平居中。如果您仍然遇到问题,请检查是否存在任何可能影响布局的冲突 CSS 规则或样式。