【问题标题】:What am I doing wrong with Tailwind CSS centering?我在 Tailwind CSS 居中做错了什么?
【发布时间】:2021-11-15 15:23:42
【问题描述】:

编辑:错误行为是由于错过了</div>(见截图)。 非常感谢您的耐心等待-_-

我正在努力解决 Tailwind CSS 中的水平项目居中问题。 让我们像这样有两个孩子的 div:

<div class="flex flex-row w-60 justify-center items-center space-x-10 border-2">
  <p>text 1</p>
  <p>text 2</p>
</div>

奇怪的是,它没有居中!

我发现,问题在于x-spacing 被添加在两个对象之间,但在第一个对象之前的空间被吃掉了,所以最左边的对象被“推”到更左边@987654329 @ 增加。

这是居中的:

<div class="flex flex-row w-60 justify-center items-center space-x-0 border-2">
  <p>text 1</p>
  <p>text 2</p>
</div>

结果:

这不是:

<div class="flex flex-row w-60 justify-center items-center space-x-16 border-2">
  <p>text 1</p>
  <p>text 2</p>
</div>

结果:

有人知道这个问题的解决方案吗?这是一个错误还是我只是期待justify-items 的错误行为?

【问题讨论】:

  • 请勿发布代码、数据、错误消息等的图片 - 将文本复制或输入到问题中。 How to Ask

标签: css tailwind-css centering


【解决方案1】:

问题在于使用w-60&lt;div&gt; 设置为15rem 宽。这会导致您的两个 &lt;p&gt; 标签在允许的 15rem 内居中,但由于 &lt;div&gt; 是左对齐的,因此项目未正确居中。

您可以根据需要删除该类以使两个&lt;p&gt; 标记居中。或者,您可以使用 w-60 类添加另一个 &lt;div&gt; 标记,以获得您所追求的居中效果。

<link href="https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.2.15/tailwind.min.css" rel="stylesheet"/>


<div class="w-60 bg-red-50">This div is 15rem wide</div>

<hr class="my-5">

<!-- 15rem container div -->
<div class="flex w-60 bg-red-50 justify-center items-center space-x-16 border-2">
    <p>text 1</p>
    <p>text 2</p>
</div>


<hr class="my-5">

<!-- Additional div wrapper with the w-60 class applied. -->
<div class="w-60 mx-auto">
    <div class="flex bg-red-50 justify-center items-center space-x-16 border-2">
        <p>text 1</p>
        <p>text 2</p>
    </div>
</div>
<hr class="my-5">


<!-- 100% wide container div -->
<div class="flex bg-red-50 justify-center items-center space-x-16 border-2">
    <p>text 1</p>
    <p>text 2</p>
</div>

flex-row 类是多余的,因为它是默认行为,因此我已将其从代码中删除。

【讨论】:

  • 抱歉,我不明白 - 15rem div 中是否没有足够的空间让这两个项目居中?顺便说一句,我需要为 div 设置固定宽度。
  • &lt;p&gt; 标记居中,但由于&lt;div&gt; 标记只有 15rem 宽,它在页面的整个宽度上看起来并没有正确居中。除非我没有完全理解你的问题?我将编辑我的答案以包含我的意思的示例。
  • @marcotrevi 我添加了其他示例来解释w-60 (width: 15rem) 类的含义。
  • 由您决定它是否按预期工作。我之前确实注意到您问题中的无效结束 &lt;/div&gt; 标记,但认为这是复制/粘贴错误,而不是您面临的问题的原因。
  • 哈哈,一切都好,只要我们解决了问题。 :)
【解决方案2】:

你预料到了吗?

<link href="https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.2.15/tailwind.min.css" rel="stylesheet"/>
<div class="flex justify-between">
  <div class="flex px-2 ">text 1</div>
  <div class="flex px-2 ">text 2</div>
  <div class="flex px-2 ">text 3</div>
</div>

如果不是,请更详细地描述您期望的结果!

【讨论】:

  • 在我上面的例子中,我希望文本 1 和文本 2 之间的空白居中!我不明白在那种情况下水平居中的是什么
  • 您将 div.flex.justify-between 块居中?然后你用:&lt;div class="max-w-6xl mx-auto px-4"&gt;希望我能理解你吗?
  • 我可能不明白 div 是如何工作的。我假设水平居中是针对父 div 进行的。不是这样吗?在我的第二个示例中以什么为中心?
  • 您的父 div 宽度 (w-60) 是一个小“问题”。尝试删除 w-60 类并查看结果。 @Kirk Beard 解释得很好。
  • 我发现了最愚蠢的错误。谢谢,但我认为 w-60 毕竟不是问题
猜你喜欢
  • 2011-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多