【问题标题】:How do I make the items change in size according to the window size inside a flexbox?如何根据 flexbox 内的窗口大小使项目的大小发生变化?
【发布时间】:2020-08-25 02:18:12
【问题描述】:

我在 html/css 中使用 flexbox 创建了一个基本的图片库。 当前页面上有六个图像,并且由于 flex-wrap,它们根据窗口大小将配置从 1x6 更改为 2x3 到 3x2 到 4+2 到 5+1 到 6x1。 现在我想加入 2 个进一步的功能:

  1. 缩放不应超过 3x2,以保持网站的对称性。在 3x2 之后,图像的大小应该会增加
  2. 图像的大小也应根据窗口进行缩放。例如,当我在 2x3 配置中增加窗口大小时,图像大小也应该增加,直到达到 3x2 配置。这是为了确保图像占据窗口的整个宽度(除非有一些填充) 我试过百分比宽度,但它确实与 flexbox 不兼容。

以下是html:

   


.row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
   
    margin: 150px;
  } 

  .image
  {
    min-width: 30%;
    flex-grow: 1;
    transition: 0.2s;  
    padding: 0 2vw 4vw;
    margin: 20px 10px 20px;
  }


  
  
  
  
        
        <!--Image gallery-->
        <div class="container">
            <a href="test_image.jpeg">
                <div class="image"><img src="test_image.jpeg" href="test_image"></div>
            </a>
            <a href="test_image.jpeg">
                <div class="image"><img src="test_image.jpeg" href="test_image"></div>
            </a>
            <a href="test_image.jpeg">
                <div class="image"><img src="test_image.jpeg" href="test_image"></div>
            </a>
            <a href="test_image.jpeg">
                <div class="image"><img src="test_image.jpeg" href="test_image"></div>
            </a>
            <a href="test_image.jpeg">
                <div class="image"><img src="test_image.jpeg" href="test_image"></div>
            </a>
            <a href="test_image.jpeg">
                <div class="image"><img src="test_image.jpeg" href="test_image"></div>
            </a>
        </div>
                
   

【问题讨论】:

  • 你能把你的图片上传到像imgur这样的网站,然后在这里链接或添加一个类似的吗?

标签: html css flexbox


【解决方案1】:

要使图像缩放以填充容器,请在行 div 上设置 justify-content: stretch,在图像容器 div 上设置 flex-grow: 1,并在图像本身上设置 width: 100%。在图像 div 上设置 min-width 大约 30% 将使其保持

.row {
    display: flex;
    flex-wrap: wrap;
    justify-content: stretch;
    align-items: center;
    margin: 150px 40px;
}

.image {
    padding: 0 20px 40px;
    min-width: 25%;
    flex-grow: 1;
}

img {
    width: 100%;
}

这里有一个例子(很难看到它与这么小的容器一起工作,但你可以通过缩小来判断):https://jsfiddle.net/817o6r0f/

【讨论】:

  • 它现在正在缩放,但是图像的大小在 500px 宽度以下超快速地减小,它们变得不可见
  • 而且它们在 1200 像素之后也不会增加大小。我已经包含了整个代码,因此您可以进行实验
  • 您包含的新代码极大地改变了问题,因为页面的行为与原始页面的行为非常不同,并且与您在这些 cmets 中提出的问题不一致。我建议将其改回原来的问题,以便这篇文章对其他人有帮助。如果您将问题恢复到之前的状态,我可以尝试建议我是否可以重现其他问题。
  • 给你我已经改回来了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-23
  • 1970-01-01
  • 2014-12-28
  • 2018-08-29
  • 2021-12-12
  • 2022-10-24
  • 1970-01-01
相关资源
最近更新 更多