css 无论如何,使时间选择器弹出匹配父窗体控件的全宽度?

f0brbegy  于 2023-10-21  发布在  其他
关注(0)|答案(1)|浏览(119)
<FormControl fullWidth>
    <LocalizationProvider dateAdapter={AdapterDayjs}>
        <TimePicker
             views={["hours", "minutes", "seconds"]}
             label={t("StrategyManager.Select_Time")}
             value={timer}
             onChange={(selectedTime) => handleTimeSelection(selectedTime, "timer")}
             ampm={false}
             />
   </LocalizationProvider>
</FormControl>

目前,我有上述组件的React和打字脚本使用MUI版本v6.16.1,但弹出器只坐在左边的父字段。
理想情况下,我希望它跨越表单控件的整个宽度,每个小时/分钟/秒列的宽度都相等,但我似乎无法针对 Package 器。
任何帮助样式此组件将不胜感激!

qlckcl4x

qlckcl4x1#

有一种方法可以做到这一点,你必须使用getBoundingClientRect()来获得输入宽度(在useRef的帮助下)。然后用它来设置时间选择器的宽度,请参阅下面我的codesandbox示例

有几件事你应该注意:

  • 我使用desktopModeMediaQuery=""停用了时间选择器的移动的变体,因为我覆盖了布局样式,这破坏了移动的变体
  • 宽度不会更新,如果你调整窗口的大小,我知道这不太可能发生与真实的用户,但只是供参考

老实说,我觉得这个解决方案是非常 * 黑客 *,所以除非你真的需要它,并没有找到一个更好的替代品

相关问题