如何使用 Tailwind CSS 在 input:focus 的前一个兄弟上设置 textColor?

Posted

技术标签:

【中文标题】如何使用 Tailwind CSS 在 input:focus 的前一个兄弟上设置 textColor?【英文标题】:How can I set the textColor on a preceding sibling of a input:focus using Tailwind CSS? 【发布时间】:2022-01-20 18:19:21 【问题描述】:

我有一种情况,我需要更改标签的文本颜色,其中以下兄弟是输入,当它聚焦时。

div(class='form-control')
  label(class='label ...')
  input(type='text')

我能想到的最好的方法是将标签移动到输入之后,使用相邻的兄弟选择器input:focus + label

input:focus + label 
  @apply text-green-500;

...然后用 flexbox flex-direction 反转顺序...但这意味着我需要将样式分离到单独的 CSS 文件中,并且将顺序“向后”放置非常烦人...

是否有任何提示、技巧或 Tailwind 实用程序来支持此用例?

【问题讨论】:

【参考方案1】:

您可以使用groupgroup-focus-within 实用程序并保持您的标记不变。

<div class="group">
  <label class="group-focus-within:text-red-600">Some text</label>
  <input class="..." />
</div>

现在所有主要的现代浏览器都支持Focus-within。

Tailwind play https://play.tailwindcss.com/7BRw4QLbly

【讨论】:

以上是关于如何使用 Tailwind CSS 在 input:focus 的前一个兄弟上设置 textColor?的主要内容,如果未能解决你的问题,请参考以下文章

Tailwind/CSS 使用自定义字体

如何在 Flutter 应用程序中使用 Tailwind-css

如何将@tailwind CSS 规则添加到 CSS 检查器

如何在tailwind-css中水平对齐图像

如何使用 jit 在 tailwind-css 中使用布局变体?

如何在 React、Next.js 中使用 tailwind.css 垂直和水平放置内容中心?