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

如何隐藏MUI datepicker中的禁用年份选项?

隐藏MUI Datepicker禁用状态年份的实现方案

不需要手动对外层div容器做区分判定,利用MUI自动生成的固定状态类即可实现禁用年份整项隐藏,解决仅隐藏按钮后容器仍占位的问题,两种可直接落地的方法:

  • 纯CSS快速实现(适配MUI v5+、现代浏览器)
    MUI会自动给禁用状态的年份按钮打上固定类Mui-disabled,通过CSS :has()选择器匹配包含禁用按钮的外层年份容器,直接设置隐藏即可:
/* 隐藏包含禁用年份按钮的整个年份项容器 */
.PrivatePickersYear-root:has(.PrivatePickersYear-yearButton.Mui-disabled) {
  display: none !important;
}
  • MUI官方API样式覆写(兼容性更好,推荐生产环境使用)
    通过MUI主题全局配置或单组件插槽属性定制样式,无需手动检索DOM类,全局配置示例:
import { createTheme } from '@mui/material/styles';

const datePickerTheme = createTheme({
  components: {
    MuiPickersYear: {
      styleOverrides: {
        root: {
          '&:has(.MuiPickersYear-yearButton.Mui-disabled)': {
            display: 'none',
          }
        }
      }
    }
  }
})

若只需对单个日期选择器生效,直接给组件传入slotProps.yearButton对应样式规则即可。

避坑提示:不要使用DOM结构里css-k9reix、css-m1gykc这类带随机哈希的类名做选择器,这类是MUI编译时自动生成的动态类,版本更新后会变化,必须使用PrivatePickersYear-root、Mui-disabled这类官方固定类名,避免样式失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 06:57:21