You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Tailwind 3中结合dark mode与peer-checked实现样式切换

解决Tailwind peer-checked在深色模式下切换label背景色的问题

你的代码已经正确使用了peer-checked:dark:前缀定义深色模式下的选中状态样式,但需要确保Tailwind的深色模式配置为class模式,否则dark:前缀的样式不会生效。

修正后的完整代码

<input class="radio_input hidden peer" type="radio" id="html" name="expense_categories_id" value="html">
<label class="radio_label cursor-pointer bg-white flex justify-center items-center flex-col text-gray-800 rounded-xl border-4 border-gray-200 px-4 py-4 peer-checked:bg-gray-800 peer-checked:text-white peer-checked:dark:bg-gray-100 peer-checked:dark:text-gray-600 dark:border-gray-800 dark:bg-gray-600 dark:text-gray-100" for="html">
  Name
</label>

关键配置说明

要让dark:前缀的样式生效,需在项目根目录的tailwind.config.js中开启class模式的深色模式:

/** @type {import('tailwindcss').Config} */
module.exports = {
  darkMode: 'class', // 必须设置为'class',而非默认的'media'
  content: [
    "./src/**/*.{js,jsx,ts,tsx}",
  ],
  theme: {
    extend: {},
  },
  plugins: [],
}

样式逻辑说明

  • 默认状态:浅色模式下背景为bg-white,深色模式下切换为dark:bg-gray-600
  • 选中状态:浅色模式下背景变为peer-checked:bg-gray-800、文字变为peer-checked:text-white;深色模式下背景切换为peer-checked:dark:bg-gray-100、文字变为peer-checked:dark:text-gray-600
  • 边框和文本颜色同步适配深浅模式,保证选中状态的视觉对比清晰

内容的提问来源于stack exchange,提问作者lazyninja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 19:10:28