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

如何修改MUI DateTimePicker组件中AM/PM按钮的样式?

解决MUI DateTimePicker AM/PM按钮颜色定制问题

核心思路

MUI的DateTimePicker内部的AM/PM按钮属于Clock组件的子元素,通过浏览器开发者工具定位对应类名后,即可通过sx属性或全局主题覆盖样式。

方法一:组件sx属性局部定制

直接在DateTimePicker上通过类选择器定位按钮元素,按需修改样式:

import { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker';
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';

export default function CustomDateTimePicker() {
  return (
    <LocalizationProvider dateAdapter={AdapterDayjs}>
      <DateTimePicker
        label="选择日期时间"
        sx={{
          // 未选中状态的AM/PM按钮样式
          '& .MuiClock-amButton, & .MuiClock-pmButton': {
            color: '#666',
            backgroundColor: '#f8f8f8',
            '&:hover': {
              backgroundColor: '#e8e8e8',
            },
          },
          // 选中状态的AM/PM按钮样式
          '& .MuiClock-amButton.Mui-selected, & .MuiClock-pmButton.Mui-selected': {
            color: '#fff',
            backgroundColor: '#2196f3',
          },
        }}
      />
    </LocalizationProvider>
  );
}

方法二:全局主题统一修改

如果需要项目内统一AM/PM按钮样式,可通过createTheme覆盖MuiClock组件的默认样式:

import { createTheme, ThemeProvider } from '@mui/material/styles';
import { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker';
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';

const customTheme = createTheme({
  components: {
    MuiClock: {
      styleOverrides: {
        amButton: {
          color: '#666',
          backgroundColor: '#f8f8f8',
          '&:hover': {
            backgroundColor: '#e8e8e8',
          },
          '&.Mui-selected': {
            color: '#fff',
            backgroundColor: '#2196f3',
          },
        },
        pmButton: {
          // 可复用amButton样式,或单独定义差异化样式
          color: '#666',
          backgroundColor: '#f8f8f8',
          '&:hover': {
            backgroundColor: '#e8e8e8',
          },
          '&.Mui-selected': {
            color: '#fff',
            backgroundColor: '#2196f3',
          },
        },
      },
    },
  },
});

export default function App() {
  return (
    <ThemeProvider theme={customTheme}>
      <LocalizationProvider dateAdapter={AdapterDayjs}>
        <DateTimePicker label="选择日期时间" />
      </LocalizationProvider>
    </ThemeProvider>
  );
}

注意事项

  • 类名可能随MUI版本更新变化,建议右键点击按钮→选择「检查」,通过浏览器开发者工具确认最新类名,避免样式失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 07:43:11