在较小的设备中覆盖填充 React Material UI

Posted

技术标签:

【中文标题】在较小的设备中覆盖填充 React Material UI【英文标题】:Override padding in smaller devices React material UI 【发布时间】:2020-02-26 00:35:11 【问题描述】:

我有一个第 3,6,3 列的网格,并且我还给出了 3 的网格间距。

对于 lg、md 屏幕设备尺寸,它看起来没问题,即网格之间的间距。但是当我减小屏幕尺寸时,Grid 之间的间距保持不变,看起来不太好

我想要的是 lg 和 md 设备的 Grid 之间的间距为 3,但 sm 和 xs 设备的间距为 0,所以我在 Grid 周围看不到任何填充。

我已经检查了 DOM,发现网格间距 3 的内边距为 12 像素。

我试过了

const theme = createMuiTheme(
  ..., // Other default things
  overrides: 
    MuiGrid: 
      'spacing-xs-3': 
        '& > $item': 
          padding: 'none',
        ,
      ,
    ,
  ,
);

这完成了删除填充的工作,这显然是针对所有设备尺寸的,但我希望只为较小尺寸的设备删除此填充。

我在这样的组件内部使用了这个

  const useStyles = makeStyles(theme => (
     ...,
     overrides:  // This part , I tried both with and without overrides key
       MuiGrid: 
        'spacing-xs-3': 
          '& > $item': 
            [theme.breakpoints.down('md')]: 
              padding: 'none',
            
          ,
        ,
      ,
    ,
  ));

似乎没有一个真正起作用,我在哪里犯错了?

【问题讨论】:

请创建一个code sandbox 来重现您的问题。这将使为您提供正确的语法变得更加容易/更快。确定您希望更改的方式(在主题中还是在组件中)并在沙箱中使用该方法。 【参考方案1】:

你只需要使用$root元素而不是$item,像这样

MuiGrid: 
            'spacing-xs-3': 
                '& > $root': 
                   [Your styles go here]
                ,
            ,
        ,

【讨论】:

以上是关于在较小的设备中覆盖填充 React Material UI的主要内容,如果未能解决你的问题,请参考以下文章

引导导航栏:在较小的设备上不显示任何内容

iOS - 相同小宽度的 UIView 不会在较小的设备上布局

应用程序布局在较小的显示器中重叠

FullPage.js 在桌面上的淡入淡出效果,在较小的设备上禁用并获得默认滚动

UIButton 和 UILabel 在较小的屏幕上不可点击

避免在较小的屏幕上将第二行移至下一行 Bootstrap 3