React MUI Avatar div 高度默认为静态值(40px)

问题描述 投票:0回答:1

我的页面上有一个 MUI 头像元素:

<Avatar sx={{ width: 180, height:'auto', maxHeight: 180, margin: 2 }} variant="square"
                                alt={""}
                                src={global.config.baseUrl + '/image/logo' + this.state.user.userId + '.jpg'} />

这会生成以下 DOM:

<div class="MuiAvatar-root MuiAvatar-square css-eqjmj4">
    <img alt="" src="/image/logo1.jpg" class="MuiAvatar-img css-1hy9t21">
</div>

具有以下 css 类:

.css-eqjmj4 {
    position: relative;
    display: flex;
    -webkit-box-align: center;
    align-items: center;
    -webkit-box-pack: center;
    justify-content: center;
    flex-shrink: 0;
    height: 40px;
    font-family: Roboto, Helvetica, Arial, sans-serif;
    font-size: 1.25rem;
    line-height: 1;
    border-radius: 0px;
    overflow: hidden;
    user-select: none;
    width: 180px;
    max-height: 180px;
    margin: 16px;
}

我希望将宽度设置为正好 180 像素,高度按比例缩放(最大高度为 180 像素)

由于某种原因,css 类将高度硬编码为

height: 40px;

我怎样才能覆盖它?

css reactjs material-ui
1个回答
0
投票

看起来

square
Avatar
变体只是场景背后的
height
width
的 CSS,这并不是很直观。

我的建议是——自己添加

aspect-ratio
的样式(所有现代浏览器都支持),值为
1 / 1
,这样代码看起来就像这样。

<Avatar
  sx={{
    width: 180,
    aspectRatio: "1 / 1", // <-- look here
    height: "auto",
    maxHeight: 180,
    margin: 2,
  }}
  variant="square"
  src="/static/images/avatar/3.jpg"
/>

当您设置比它大的

max-height
时,这将与
width
一起使用。

这是一个工作示例

© www.soinside.com 2019 - 2024. All rights reserved.