Ширина карты пользовательского интерфейса материала с гибкой сеткой.

#css #reactjs #material-ui

Вопрос:

Я использую пользовательский интерфейс Material в качестве основы компонента дизайна для приложения React. Внутри приложения находится куча карточек с изображением и некоторым текстом. Я использую calc, чтобы получить ширину изображения, чтобы высота отображалась в соотношении 4:3 примерно так

 <CardMedia
  className={classes.cardMedia}
  style={{ height: `calc(${width}px * 0.75)` }}>
  <Image
    src={image}
    alt="Text"
    layout="fill"
    objectFit="cover"
    priority
  />
</CardMedia>
 

В приложении также есть точки останова для отображения разного количества карт в каждой строке в зависимости от разрешения. Довольно стандартные вещи.

Проблема, с которой я сталкиваюсь и для которой я изо всех сил пытаюсь найти приемлемое решение, связана с шириной.

С многоточием в пользовательском интерфейсе Material ему требуется фиксированное значение ширины, например width: 200px , вместо чего-то гибкого , например width: '100%' , чтобы многоточие отображалось и текст не переносился на другую строку. На данный момент я использую calc() для вычисления ширины, как показано ниже, что нормально при загрузке страницы, но очень медленно вычисляет обновленную ширину, если вы измените размер окна браузера, а также измените ширину карты.

 <div
  style={{
    overflow: 'hidden',
    textOverflow: 'ellipsis',
    whiteSpace: 'nowrap',
    width: `calc(${width}px - 35px)`,
  }}>
  <Typography noWrap gutterBottom variant="h5">
    {address}
  </Typography>
</div>
 

Итак, мой вопрос в том, как лучше всего рассчитать ширину карты, когда разрешение окна или наложенной сетки, в которой отображаются карты, также меняет ширину?

Комментарии:

1. Можете ли вы опубликовать его скриншот ?