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

Next13+Chakra UI响应式断点失效:导航链接显示异常

解决导航链接在lg断点显示为block而非flex的问题

你设置Box组件在lg及以上断点显示为flex,但实际渲染为block,核心原因是Chakra UI的Box默认display属性为block,存在样式覆盖优先级的问题,以下是两种解决办法:

方案一:用Flex组件替代Box(推荐)

Flex组件默认display属性就是flex,直接使用它可以避免默认样式冲突,同时简化响应式配置:

<Flex 
  width={'25%'} 
  display={{ base: 'none', lg: 'flex' }} 
  flexDirection={'row'} 
  justifyContent={'space-between'}
>
  <Link href={'/'}>
    <Text fontSize={'2xl'}>Home</Text>
  </Link>
  <Link href={'/'}>
    <Text fontSize={'2xl'}>Home</Text>
  </Link>
  <Link href={'/'}>
    <Text fontSize={'2xl'}>Home</Text>
  </Link>
  <Link href={'/'}>
    <Text fontSize={'2xl'}>Home</Text>
  </Link>
</Flex>

这里把sm: 'none', md: 'none'合并为base: 'none',base代表最小断点,自动覆盖所有小于lg的屏幕尺寸,代码更简洁。

方案二:强制覆盖Box的默认样式(应急用)

如果必须使用Box组件,可以通过!important强制让lg断点的display:flex优先级高于默认的block:

<Box 
  width={'25%'} 
  display={{ base: 'none', md: 'none', lg: 'flex !important' }} 
  flexDirection={'row'} 
  justifyContent={'space-between'}
>
  {/* 导航链接 */}
</Box>

另外可以检查你的Chakra UI断点配置,默认lg断点为1280px,确保测试时屏幕尺寸达到该阈值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 22:12:16