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

如何修改MUI Material v6中DatePicker输入框高度?设置失效求助

解决MUI DatePicker slotProps中height仅作用于Paper的问题

问题分析

你通过slotProps.textField.sx设置的height之所以只作用在外部的Paper组件上,是因为直接给textField的sx设置height时,这个样式会被应用到TextField的外层容器上,而Paper会继承这个容器的高度值;同时TextField内部的输入框元素有自己的样式优先级,不会直接继承这个height。

解决方案

需要通过MUI的CSS类名精准定位到TextField内部的元素来设置高度,同时显式指定Paper的高度避免继承冲突:

<Paper elevation={0} sx={{ height: 'auto' }}>
  <DatePicker
    fullWidth
    views={['year', 'month', 'day']}
    openTo='month'
    value={initialDate}
    slotProps={{
      textField: {
        sx: {
          // 定位TextField根容器
          '& .MuiTextField-root': {
            height: '10px'
          },
          // 定位输入框基础容器,调整内边距和字体适配高度
          '& .MuiInputBase-root': {
            height: '10px',
            padding: '0 8px',
            fontSize: '12px'
          },
          // 直接定位输入框元素
          '& .MuiInputBase-input': {
            height: '10px',
            lineHeight: '10px'
          }
        }
      }
    }}
    onChange={(newValue) => handleInitialDateChange(newValue)}
  />
</Paper>

关键要点

  • 显式给Paper设置height: 'auto',阻断它继承TextField容器的高度
  • 利用MUI的内置类名(如.MuiInputBase-root、.MuiInputBase-input)精准设置输入框的高度,同时调整内边距、字体大小、行高来适配小高度,避免内容溢出或显示异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 12:15:00