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

如何在MUI的sx属性中实现theme.breakpoints.only断点效果?

在MUI的sx属性中实现breakpoints.only的效果

方法一:直接在sx回调中使用theme.breakpoints.only

sx属性支持接收一个以theme为参数的函数,你可以直接调用theme.breakpoints.only生成对应媒体查询,绑定目标样式:

import Box from '@mui/material/Box';

<Box
  sx={(theme) => ({
    // 仅在xs断点区间内应用蓝色背景
    [theme.breakpoints.only('xs')]: {
      background: 'blue',
    },
    // 仅在sm断点区间内应用红色背景
    [theme.breakpoints.only('sm')]: {
      background: 'red',
    },
  })}
>
  示例内容
</Box>

这种方式和你之前使用theme.breakpoints.only的逻辑完全一致,直接复用MUI内置的断点计算逻辑,迁移成本低。

方法二:用breakpoints.between模拟only效果

breakpoints.only(断点)本质等价于breakpoints.between(断点, 下一级断点),你可以通过这个方法生成相同的媒体查询范围:

<Box
  sx={(theme) => ({
    // 仅在xs断点区间(0px 至 sm断点的上限)生效
    [theme.breakpoints.between('xs', 'sm')]: {
      background: 'blue',
    },
  })}
>
  示例内容
</Box>

如果你的项目自定义了断点配置,这种方式会自动适配自定义的断点区间,无需手动写死像素值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 05:16:02