如何解决Chakra UI的Box/Flex项在平板移动端无法占100%宽度的问题
问题原因
经排查布局异常由2个代码问题共同导致,你页面其他Section下的组件运行正常,是因为其他组件都是默认块级宽度100%,而该调度组件的小屏幕分支存在属性误用和缺失:
- 小屏幕分支下的外层
Flex组件未显式设置100%宽度,Chakra UI的Flex组件默认宽度仅适配内容,不会自动占满父容器 - 误用了仅适用于Grid布局的
justifyItems属性,Flex布局下要实现子项拉伸适配需使用对应Flex属性
修复方案
直接修改ScheduleComponent组件中小屏幕分支的代码即可:
// 原代码 <Flex justifyItems="stretch"> // 修改为 <Flex w="100%" alignItems="stretch">
如果修改后仍有适配问题,可以在<Box py={['2', '4', '8']}>节点上也增加w="100%"属性,确保父容器也占满可用宽度。
补充验证点
如果修改后仍有留白,可以额外检查2个点:
MobileDaysCellList、MobileEventsFlex组件是否未设置100%宽度,导致内部内容无法撑满外层FlexHoursCellList组件的移动端宽度是否固定,避免出现宽度溢出挤压右侧内容空间
内容的提问来源于stack exchange,提问作者Marko B.
相关产品推荐
相关产品推荐

