Как настроить точку останова md для одного экземпляра material ui Grid с помощью css

#css #reactjs #typescript #material-ui

#css #reactjs #typescript #материал-пользовательский интерфейс

Вопрос:

Я использую сетку material ui для адаптивного пользовательского интерфейса.

 <Grid spacing={2} xs={12} container={true}>
  <Grid item={true} lg={4} md={6} sm={12}>...</Grid>
  <Grid item={true} lg={4} md={6} sm={12}>...</Grid>
  <Grid item={true} lg={4} md={6} sm={12}>...</Grid>
</Grid>
  

Я хочу настроить ширину экрана для точки останова md на npx , и я хочу сделать это только в этом одном экземпляре. Не через приложение.

Я нашел, как сделать это для всего приложения, а также для одного экземпляра сетки, используя стили.

 const styles = theme => ({
  root: {
    [theme.breakpoints.up('md')]: {
      width: npx,
    },
  },
});
  

Но предпочел бы сделать это с помощью css вместо стилей пользовательского интерфейса material. Как я могу это сделать?

Ответ №1:

Сначала добавьте your-class к каждому элементу. Затем используйте этот css:

 
@media (min-width:960px) { //change min-width to your selected value
  .MuiGrid-grid-md-6.your-class {
    flex-grow: 0;
    max-width: 50%;
    flex-basis: 50%;
  }
}
  

Это работает, если ваша новая точка останова < 960px . Если значение равно > 960px , вам также нужно это:

 
@media (min-width:600px) and (max-width:959px) { //change max-width to (your selected value - 1)
  .MuiGrid-grid-sm-12.your-class {
    flex-grow: 0;
    max-width: 100%;
    flex-basis: 100%;
  }
}
  

Вы можете использовать те же рассуждения и для других точек останова. Например: для lg , которой по умолчанию является точка останова 1280px :

 @media (min-width:1280px) {//change min-width to your selected value
  .MuiGrid-grid-lg-4.your-class {
    flex-grow: 0;
    max-width: 33.333333%;
    flex-basis: 33.333333%;
  }
}

// If breakpoint > 1280px, also add

@media (min-width:960px) and (max-width:1279px) { //change max-width to (your selected value - 1)
  .MuiGrid-grid-md-6.your-class {
    flex-grow: 0;
    max-width: 50%;
    flex-basis: 50%;
  }
}
  

Дальнейшая настройка будет зависеть от того, какие значения вы установили, т. Е. lg={4} vs lg={3} … Я вставил полные определения css для MuiGrid здесь.