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

如何通过sx修改MUI DatePicker 6.19.7选中日期的背景色?

解决MUI DatePicker 6.19.7选中日期背景色即时生效的问题

问题出在你只覆盖了Mui-selected状态的样式,但当你点击选中日期时,该元素会同时触发Mui-focusVisible状态,这个状态的默认样式优先级更高,导致点击时看不到你设置的红色背景,只有失去焦点后才会显示。

直接在day的sx配置里同时覆盖选中状态和选中+焦点状态的样式即可:

import { DatePicker } from '@mui/x-date-pickers/DatePicker';

<DatePicker
  label="选择日期"
  slotProps={{
    day: {
      sx: {
        // 覆盖选中状态(包括焦点状态)的背景色
        '&.Mui-selected, &.Mui-selected.Mui-focusVisible': {
          backgroundColor: 'red',
          color: '#fff', // 可选,设置文字颜色增强对比度
          '&:hover': {
            backgroundColor: '#c0392b', // 可选,hover时的深色效果
          }
        }
      }
    }
  }}
/>

为什么这样有效?

MUI的日期单元格在被点击选中时,会同时添加Mui-selected和Mui-focusVisible两个类名,默认情况下Mui-focusVisible的背景样式优先级高于单纯的Mui-selected,所以必须显式指定这个组合状态的样式,才能让选中后的即时显示和失焦后的显示保持一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 21:24:54