使用 tailwind 将鼠标悬停在特定子元素上时在父元素上应用样式

gld*_*ael 13 tailwind-css

我有这样的事情:

<main id="parent" class="h-screen flex justify-center items-center">
  
  <div id="child" class="bg-red-200 w-96 h-72 flex">
  </div>
  
</main>
Run Code Online (Sandbox Code Playgroud)

当鼠标悬停在 上时,我将如何申请.bg-blue-100唯一的?#parent#child

group(我知道对父母和group-hover孩子使用可以达到相反的效果。)

JHe*_*eth 22

您可以给父级pointer-events-none和子级pointer-events-auto,然后对父级应用hover:bg-100或任何悬停效果,并且它应该仅在子级悬停时触发。这是 Tailwind Play 上的示例https://play.tai​​lwindcss.com/W4C3J3tW6E

<main id="parent" class="h-screen flex justify-center items-center
hover:bg-blue-100 pointer-events-none">
  <div id="child" class="bg-red-200 w-96 h-72 flex pointer-events-auto">
  </div>
</main>
Run Code Online (Sandbox Code Playgroud)

  • @LoïcV 为此,您可以在父级上使用“focus-within”,并向子级添加 tabindex,以便它可以聚焦。https://play.tai​​lwindcss.com/ujBKWsj3Yo (2认同)
  • @LoïcV 评论后看到你的答案,是的,哈哈。 (2认同)

小智 13

如果您还想在孩子聚焦时设置父母的样式,只需添加

"focus-within:bg-indigo-500"
Run Code Online (Sandbox Code Playgroud)

(显然用你的风格替换“bg-indigo-500”)

当每个孩子都发生这种情况或者您只有一个孩子时,这会起作用。