如何更改 flexbox 中图片的大小?

Posted

技术标签:

【中文标题】如何更改 flexbox 中图片的大小?【英文标题】:How can I change size of pictures in a flexbox? 【发布时间】:2021-09-30 16:25:36 【问题描述】:

我尝试为我的作品集开发网站。我想做这样的事情:

但我对 Twitter/Instagram 和 Deviantart 的 3 个图标有一些疑问。为了放置这样的图标,我在 html 中使用了 flexbox。目前,我有:

#conteneur 
  display: flex;
  justify-content: space-between;
<div id="conteneur">
  <div class="element1">
    <img src="https://zupimages.net/up/21/29/vbxh.png">
  </div>
  <div class="element2">
    <img src="https://zupimages.net/up/19/51/4gl0.png">
  </div>
  <div class="element3">
    <img src="https://zupimages.net/up/21/29/dbtc.png">
  </div>
</div>

在此处使用 CodePen 进行测试:https://codepen.io/lucbenedet/pen/yLbPMgK

但是正如你所看到的,图片太大了,当我尝试将图片设置为 35px 的大小时:

#conteneur

    display: flex;
    justify-content: space-between; 
    width: 35px;


.element1

    width: 35px;

调整大小不起作用...

有人来展示如何做到这一点?

【问题讨论】:

您好,确实可以,但是每张图片之间的空间变小了,好像justify-content: space-between 不工作了? 也许阅读更多关于justify-content 的不同值的信息并熟悉CSS flexbox? space-between 将在 flex 子元素之间均匀分布所有剩余空间:如果您的父元素非常宽,那么它们当然会分散得很远。试试justify-content: center 【参考方案1】:

您可以使用以下代码更新您的 CSS。

#conteneur 
  display: flex;
  justify-content: space-between;
  width: 150px;
  padding: 10px;


#conteneur div img 
  width: 35px;
  height: 35px;
<div id="conteneur">
  <div class="element1">
    <img src="https://zupimages.net/up/21/29/vbxh.png">
  </div>
  <div class="element2">
    <img src="https://zupimages.net/up/19/51/4gl0.png">
  </div>
  <div class="element3">
    <img src="https://zupimages.net/up/21/29/dbtc.png">
  </div>
</div>

当你最大化容器的宽度时,你可以在图标之间留一些空间

【讨论】:

【参考方案2】:

您可以将 flex-container 上的宽度重置为最大内容(3 个图标不应溢出)并使用 gap 设置它们之间的距离。

您可以将 em 用于间隙和图标的宽度,以获得连贯的渲染。

可能的例子:

#conteneur 
  display: flex;
  width: max-content;
  align-items: center;
  margin: auto;
  gap: 1.6em;


#conteneur div img 
  width: 3em;
<div id="conteneur">
  <div class="element1">
    <img src="https://zupimages.net/up/21/29/vbxh.png">
  </div>
  <div class="element2">
    <img src="https://zupimages.net/up/19/51/4gl0.png">
  </div>
  <div class="element3">
    <img src="https://zupimages.net/up/21/29/dbtc.png">
  </div>
</div>

来自您的代码笔https://codepen.io/gc-nomade/pen/qBmVjBV的可能示例

【讨论】:

以上是关于如何更改 flexbox 中图片的大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何在更改后的Flexbox网格中获取Vue元素的更新CSS宽度?

Flexbox 不会重新计算样式

根据 flexbox 容器的高度设置字体大小

带有 flexbox 的 css 正方形网格

Chrome中的Flexbox——如何限制嵌套元素的大小? [复制]

Flexbox 图像在浏览器中的大小调整不同