tailwindcss 官网(四)核心概念:悬停、焦点和其它状态

本文详细介绍了如何使用TailwindCSS为元素的悬停、焦点、active等状态设置样式,包括`hover`, `focus`, `active`等变体,以及`group-hover`、`focus-within`等复杂场景的应用。同时,文章提到了如何自定义功能类的变体以及控制不同状态的启用。" 113731401,10093945,Unity3D 实现手指拖动物体教程,"['Unity3D', '游戏开发', '交互设计', '脚本编程']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tailwindcss 官网(四)核心概念:悬停、焦点和其它状态

官网:安装 - Tailwind CSS 中文文档

3. 悬停、焦点和其它状态

使用功能类为处于悬停、焦点和其它状态的元素设置样式。

概述

与 Tailwind 如何处理 响应式设计 类似,通过为功能类添加适当的状态变体前缀,可以对处于 hover 、focus 和其它状态的元素设置样式。

在这里插入图片描述

<form>
  <input class="border border-transparent focus:outline-none focus:ring-2 focus:ring-purple-600 focus:border-transparent ...">
  <button class="bg-purple-600 hover:bg-purple-700 focus:outline-none focus:ring-2 focus:ring-purple-600 focus:ring-opacity-50 ...">
    Sign up
  </button>
</form>

出于文件大小的考虑,默认情况下并非对所有的功能类都启用了状态变体,但我们尽力启用了最常用的组合。

查看默认启用了哪些变体的列表,查看本页末尾的 参考表

如果您需要启用一个 Tailwind 未支持的状态,可以通过 编写变体插件 来扩展支持的变体。


Hover

添加 hover: 前缀,以在 hover 状态时应用一个功能类。

在这里插入图片描述

<button class="bg-red-500 hover:bg-red-700 ...">  Hover me</button>

默认情况下, 以下核心插件启用了该 hover 变体:

  • backgroundColor
  • backgroundOpacity
  • borderColor
  • borderOpacity
  • boxShadow
  • gradientColorStops
  • opacity
  • rotate
  • scale
  • skew
  • textColor
  • textDecoration
  • textOpacity
  • translate

您可以在 tailwind.config.js 文件中的 variants 部分控制是否为某个插件启用 hover 变体:

// tailwind.config.jsmodule.exports = {  // ...  variants: {    extend: {      padding: ['hover'],    }  },}

Focus

添加 focus: 前缀,以在 focus 状态时应用一个功能类。
在这里插入图片描述

<input class="focus:ring-2 focus:ring-blue-600 ...">

默认情况下, 以下核心插件启用了该 focus 变体:

  • accessibility
  • backgroundColor
  • backgroundOpacity
  • borderColor
  • borderOpacity
  • boxShadow
  • gradientColorStops
  • opacity
  • outline
  • placeholderColor
  • placeholderOpacity
  • ringColor
  • ringOffsetColor
  • ringOffsetWidth
  • ringOpacity
  • ringWidth
  • rotate
  • scale
  • skew
  • textColor
  • textDecoration
  • textOpacity
  • translate
  • zIndex

您可以在 tailwind.config.js 文件中的 variants 部分控制是否为某个插件启用 focus 变体:

// tailwind.config.jsmodule.exports = {  // ...  variants: {    extend: {      maxHeight: ['focus'],    }  },}

Active

添加 active: 前缀,以在元素处于 active 状态时应用某个功能。

在这里插入图片描述

<button class="bg-green-500 active:bg-green-700 ...">  Click me</button>

默认情况下,所有核心插件都没有启用该 active 变体

您可以在 tailwind.config.js 文件中的 variants 部分控制是否为某个插件启用 active 变体:

// tailwind.config.jsmodule.exports = {  // ...  variants: {    extend: {      backgroundColor: ['active'],    }  },}

Group-hover

如果您需要当鼠标悬停在一个指定的父元素上时对其子元素设置样式,给父元素添加 group 类,并且为子元素的功能类添加 group-hover: 前缀。

在这里插入图片描述

<div class="group border-indigo-500 hover:bg-white hover:shadow-lg hover:border-transparent ...">  <p class="text-indigo-600 group-hover:text-gray-900 ...">New Project</p>  <p class="text-indigo-500 group-hover:text-gray-500 ...">Create a new project from a variety of starting templates.</p></div>

默认情况下, 以下核心插件启用了该 group-hover 变体:

  • backgroundColor
  • backgroundOpacity
  • borderColor
  • borderOpacity
  • boxShadow
  • opacity
  • textColor
  • textDecoration
  • textOpacity

您可以在 tailwind.config.js 文件中的 variants 部分控制是否为某个插件启用 group-hover 变体:

// tailwind.config.jsmodule.exports = {  // ...  variants: {    extend: {      divideColor: ['group-hover'],    }  },}

Group-focus

除了 focus,group-focus 变体的工作方式与 group-hover 一样。

在这里插入图片描述

<button class="group bg-yellow-500 focus:bg-yellow-600 ...">  <svg class="text-white group-focus:text-yellow-300 ..."></svg>  Bookmark</button>

默认情况下,所有核心插件都没有启用该 group-focus 变体

您可以在 tailwind.config.js 文件中的 variants 部分控制是否为某个插件启用 group-focus 变体:

// tailwind.config.jsmodule.exports = {  // ...  variants: {    extend: {      backgroundColor: ['group-focus'],    }  },}

Focus-within

添加 focus-within: 前缀,以便仅在一个子元素获得焦点时才应用功能类。(输入的文字颜色和预先显示的颜色不一样)

在这里插入图片描述

<form>  <div class="text-gray-400 focus-within:text-gray-600 ...">    <div class="...">      <svg fill="currentColor"></svg>    </div>    <input class="focus:ring-2 focus:ring-gray-300 ...">  </div></form>

默认情况下, 以下核心插件启用了该 focus-within 变体:

  • accessibility
  • backgroundColor
  • bac
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChrisP3616

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值