Изменение карты пользовательского интерфейса материала в соответствии с вводом

#javascript #html #css #reactjs

#javascript #HTML #css #reactjs

Вопрос:

Я использовал материальную карту пользовательского интерфейса и когда я ее показываю. Это выглядит как изображение ниже. Я хочу показать свою карточку таким образом, когда карточки не помещаются на страницу, которая находится ниже, и все карточки должны быть одинакового размера. Как я могу это сделать?

Вот мой код:

 const useStyles = makeStyles({ // Styling for my cards
  root: {
    width: 255,// i changed that line and below line but nothing happened
  },
  media: {
    height: 190,
  },
});

export default function AlbumsCard() {
  const classes = useStyles();
 ..... //Some http requests
  return (
    <div>
      <div>
        <input
          style={{
            width: 500,
            "margin-left": "auto",
            "margin-right": "auto",
            "margin-top": "10px",
          }}
          type="text"
          placeholder="Search Album"
          onChange={handleChange}
          value={input}
        />
      </div>
      <div style={{ display: "flex" }}> //cardss
        {k.map((album) => (
          <Link
            to={`/albums/${album.album_id}`}
            style={{ textDecoration: "none", color: "#15cdfc" }}
          >
            <Card style={{ margin: "10px" }} className={classes.root}>
              <CardActionArea>
                <CardMedia
                  className={classes.media}
                  image={album.album_pfp}
                  title={album.album_name}
                />
                <CardContent>
                  <Typography gutterBottom variant="h5" component="h2">
                    {album.album_name}
                  </Typography>
                  <Typography
                    variant="body2"
                    color="textSecondary"
                    component="p"
                  >
                    {album.album_song_count}
                  </Typography>
                </CardContent>
              </CardActionArea>
            </Card>
          </Link>
        ))}
      </div>
    </div>
  );
}
 

Также изображение из моего приложения:

Изображение

Вы можете видеть это выше. Все карты, расположенные в линию, и высота некоторых карт различны. Также есть полоса прокрутки.

Я хочу отобразить всю карточку i одинакового размера и когда она переполняет страницу. Он идет ниже.


Обновленная версия: Изображение 2

Теперь каждая карта имеет разный размер, как я могу это решить? Я думаю, это зависит от размера изображения.

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

1. попробуйте использовать display: flex; flex-wrap: wrap для контейнера, затем flex: 1 и display: flex для каждого контейнера элементов и удалите свойство overflow

2. Я обновил изображение, вы можете это проверить? @Alopwer

3. существует трюк, который вы можете использовать (минимальная высота, например, 200 пикселей, а затем высота: 0 пикселей) на каждой карте, или, если это не помогает, просто используйте min-height: значение px на каждой карте

4. или попробуйте удалить display: flex с каждой карты и просто оставить там flex: 1

5. Ничего не изменилось. Все тот же @Alopwer