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

如何减小MUI StaticDatePicker组件中日期及星期文本的字体大小?

解决MUI StaticDatePicker日期文本字体大小无法修改的问题

你的问题在于直接在sx中使用类选择器时,没有通过&关联当前组件的根元素,导致样式优先级不足,无法覆盖MUI默认样式。以下是几种可行的解决方案:

方法一:使用&嵌套选择器提升优先级

在sx中通过&指向当前组件的后代元素,确保样式作用到StaticDatePicker内部的日期文本上:

import { Box } from "@mui/material";
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
import { StaticDatePicker} from '@mui/x-date-pickers/StaticDatePicker';

const DateCalander = () => {
    return (
        <Box sx={{ bgcolor: 'white', borderRadius: 3 }}>
            <LocalizationProvider dateAdapter={AdapterDayjs}>
                <StaticDatePicker  
                    sx={{
                        width: '500px', 
                        height: '300px',
                        // 修改日期数字的字体大小
                        '& .MuiDayPicker-Day': {
                            fontSize: '10px'
                        },
                        // 修改星期标题的字体大小
                        '& .MuiDayPicker-WeekDay': {
                            fontSize: '10px'
                        },
                        // 修改年月标题的字体大小
                        '& .MuiPickersCalendarHeader-label': {
                            fontSize: '12px'
                        }
                    }}       
                />
            </LocalizationProvider>
        </Box>
    );
};

export default DateCalander;

方法二:通过slotProps精准定制内部组件

利用StaticDatePicker的slotProps属性,直接给内部的日历、头部组件单独设置样式:

import { Box } from "@mui/material";
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
import { StaticDatePicker} from '@mui/x-date-pickers/StaticDatePicker';

const DateCalander = () => {
    return (
        <Box sx={{ bgcolor: 'white', borderRadius: 3 }}>
            <LocalizationProvider dateAdapter={AdapterDayjs}>
                <StaticDatePicker  
                    sx={{ width: '500px', height: '300px' }}
                    slotProps={{
                        // 定制日历区域的样式
                        calendar: {
                            sx: {
                                '& .MuiDayPicker-Day': { fontSize: '10px' },
                                '& .MuiDayPicker-WeekDay': { fontSize: '10px' }
                            }
                        },
                        // 定制头部年月标题的样式
                        header: {
                            sx: {
                                '& .MuiPickersCalendarHeader-label': { fontSize: '12px' }
                            }
                        }
                    }}
                />
            </LocalizationProvider>
        </Box>
    );
};

export default DateCalander;

方法三:全局主题覆盖(适合多组件复用场景)

如果需要在多个StaticDatePicker中统一字体样式,可以通过自定义MUI主题实现全局覆盖:

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

// 自定义主题
const customTheme = createTheme({
    components: {
        MuiDayPicker: {
            styleOverrides: {
                day: { fontSize: '10px' },
                weekDayLabel: { fontSize: '10px' }
            }
        },
        MuiPickersCalendarHeader: {
            styleOverrides: {
                label: { fontSize: '12px' }
            }
        }
    }
});

const DateCalander = () => {
    return (
        <ThemeProvider theme={customTheme}>
            <Box sx={{ bgcolor: 'white', borderRadius: 3 }}>
                <LocalizationProvider dateAdapter={AdapterDayjs}>
                    <StaticDatePicker sx={{ width: '500px', height: '300px' }} />
                </LocalizationProvider>
            </Box>
        </ThemeProvider>
    );
};

export default DateCalander;

关键说明

  • MUI组件的默认样式优先级较高,必须确保自定义样式的优先级足够(通过&嵌套或主题覆盖)才能生效。
  • 上述示例覆盖了日期数字、星期标题、年月标题的字体大小,你可以根据需求调整对应选择器的样式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:43:28