首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在缩小图像时缩小flexbox

如何在缩小图像时缩小flexbox
EN

Stack Overflow用户
提问于 2020-12-28 10:50:44
回答 2查看 50关注 0票数 0

我正在使用flexbox在页面上居中项目,也在一行中居中项目。我必须处理行中可能很大的图像,所以我使用max-width=40%来缩小图像的大小。但是,当我这样做时,适用行的flexbox不会缩小以适应新的图像大小,但会保留该大小,就好像图像仍然是max-width=100%一样。如何使flexbox行更小,以说明40%的最大宽度属性?

下面是当前的html代码:

代码语言:javascript
复制
<div style="display: flex; flex-direction: column; align-items: center;">
    <label>This is my header.</label>
    <div style="display: flex; flex-direction: row; align-items: center; border: 1px solid black;">
        <img style="max-width: 40%; padding: 5%;" src="path_to_my_image" alt="(!)"/>
        <div style="border: 1px solid black">
            <label>Here is my label</label><br>
            <label>Here is another label</label>           
        </div>
    </div>
</div>

这是当前显示外观的图像,其中flexbox行周围有一个边框:

以下是未设置max-width (底部裁剪以适合)的情况:

EN

回答 2

Stack Overflow用户

发布于 2020-12-28 12:51:34

我不太确定为什么<img>作为flexbox元素的子元素不容易使用。根据我的经验,它对flex-basis没有反应。

但作为一种解决办法,您可以像这样用<div>包装<img>,并将<div>的初始高度设置为容器的40%:

代码语言:javascript
复制
<div style="display: flex; flex-direction: column; align-items: center;">
    <label>This is my header.</label>
    <div style="display: flex; flex-direction: row; align-items: center; border: 1px solid black;">
        <div style="flex: 0 1 40%; padding: 5%;">
          <img style="width: 100%;" src="http://4.bp.blogspot.com/-d68l8RLoLc4/UWAJF-ofbJI/AAAAAAAAST4/SUJbO2Dz-RI/s1600/cat1.jpg" alt="(!)"/>
        </div>     
        <div style="border: 1px solid black">
            <label>Here is my label</label><br>
            <label>Here is another label</label>           
        </div>
    </div>
</div>

我使用上面的"flex" shorthand将图像容器divflex-grow属性设置为0,这样如果flexbox容器上有额外的空间,浏览器就不会调整图像容器的大小。

票数 0
EN

Stack Overflow用户

发布于 2020-12-28 13:40:42

使用CSS object-fit属性来解决这个问题。有关更多帮助,请参阅w3school CSS对象适配属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65472490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档