常见状态前缀

状态处理概述

Tailwind CSS 通过实用类(utility classes)处理元素的不同状态(如悬停、聚焦、激活等),无需编写自定义 CSS。状态类通过前缀(如 hover:、focus:)与基础类结合,实现动态样式。


常见状态前缀

  • 交互状态
    hover: 悬停状态(如 hover:bg-blue-500)
    focus: 聚焦状态(如 focus:ring-2)
    active: 点击激活状态(如 active:scale-95)
    group-hover: 父容器悬停时生效(需配合 group 类)

  • 表单状态
    checked: 复选框/单选选中状态(如 checked:bg-green-500)
    disabled: 禁用状态(如 disabled:opacity-50)

  • 媒体查询
    sm:、md:、lg: 等响应式断点前缀(如 md:text-lg)


使用示例

悬停与聚焦效果

html 复制代码
<button class="bg-gray-300 hover:bg-blue-500 focus:ring-2 focus:ring-blue-600">
  Click Me
</button>

父容器悬停控制子元素

html 复制代码
<div class="group">
  <div class="text-gray-500 group-hover:text-red-500">Hover over parent</div>
</div>

表单元素状态

html 复制代码
<input type="checkbox" class="checked:bg-green-500 disabled:opacity-30">

自定义状态

通过 @variants 指令扩展自定义状态(需在 Tailwind 配置文件中定义):

css 复制代码
@variants motion-safe {
  .animate-slow {
    animation: spin 3s linear infinite;
  }
}

使用:<div class="motion-safe:animate-slow">


状态叠加顺序

Tailwind 遵循 CSS 层叠规则。多个状态前缀可组合使用,但需注意顺序优先级(如 focus:hover:bg-purple-500 表示聚焦且悬停时的样式)。


注意事项

  1. 启用状态类 :某些状态(如 focus:、disabled:)需在 tailwind.config.js 的 variants 中显式启用。
  2. 性能优化:避免滥用状态类,尤其是复杂动画或高频交互场景。

通过合理使用状态前缀,可以高效实现动态 UI 效果,减少自定义 CSS 代码量。

相关推荐
parade岁月5 小时前
告别 Deno 时代?运行时进入一年倒计时,Deno 团队并入 Cloudflare
前端
Lucky_Turtle5 小时前
【HTML】前端页面禁止缩放
前端·html
恋猫de小郭5 小时前
Genkit Dart 1.0 发布,Flutter 原生的 AI Agent 终于完整了
android·前端·flutter
思码梁田5 小时前
CSS transform 转换详解:translate、rotate、scale、skew 与 3D 变换一次讲清
前端·css·transform·skew·scale·translate·rotate
第10086个小白5 小时前
flutter桌面端打包方式(Inno Setup Compiler)版本
前端·flutter
派小心.5 小时前
多端数据分析平台的漏斗可以跨端搭建吗?5 步搭出跨端转化漏斗
大数据·运维·服务器·前端·数据分析
IT_陈寒5 小时前
为什么我的React组件一直在意外重渲染?
前端·人工智能·后端
Su米苏5 小时前
基于 Token 预算的上下文压缩控制器(Context Compaction Controller)
前端·数据库·人工智能
骇客野人5 小时前
Java 开发组件大全覆盖后端主流技术栈(基础、Web、ORM、中间件、微服务、安全、工具、测试、运维、信创适配常用组件)
java·前端·中间件
风骏时光牛马6 小时前
大模型底层架构与推理流程AI源码深度剖析
前端