【问题标题】:Flexbox centering 2 images and scale image when viewport gets too small当视口变得太小时时,Flexbox 居中 2 个图像并缩放图像
【发布时间】:2020-10-13 22:57:53
【问题描述】:

我现在正在摆弄这个简单的布局。

我们的目标是利用 flexbox 将 2 个图像居中,当屏幕变小时,这些图像会调整大小,因为图像本身就相当大。

桌面:

手机:

body 本身也位于 Footer 元素上方,但 body 中的内容与页脚重叠,有人知道如何解决这个问题吗?

HTML 如下所示:

<div class="row">
  <div class="imagecontainer">
    <img class="prijsimage" src="../../assets/images/example1.png">
    <img class="prijsimage" src="../../assets/images/example2.png">
  </div>
</div>

CSS 如下所示:

.imagecontainer{
 display: flex;
 justify-content: center;
 flex-wrap: wrap;
}

我也试过这个代码:

<div class="row">
  <div class="imagecontainer">
    <img class="prijsimage" src="../../assets/images/prijslijst_noback.png">
  </div>
  <div class="imagecontainer">
    <img class="prijsimage" src="../../assets/images/pijslijst_noback_wax.png">
  </div>
</div>
.imagecontainer{
    flex: 50%;
    display: flex;
    flex-direction: row;
   align-items: center;
   justify-content: center;
   margin-top: 5%;
}

.prijsimage{
    max-height: 100%;
    vertical-align: bottom;
}
.row{
   display: flex;
   flex-direction: row;
}


@media (max-width: 480px) {
    .row {
      flex-direction: row;
    }
  
    .imagecontainer {
      height: auto;
      width: 100%;
      
    }
  
    .prijsimage {
      width: 100%;
      max-height: 75vh;
      min-width: 0;
    }
  }

我真的希望这能澄清我的问题。有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: html css angular flexbox


    【解决方案1】:

    您需要在媒体查询中将flex-direction: column; 设置为容器。我清理了您的代码并使其尽可能简单,以便您可以复制并粘贴到您的项目中。

    .block {
      width: 100%
    }
    
    .container {
      display: flex;
      flex-wrap: wrap;
    }
    
    .container>div {
        padding: 1em;
        flex: 0 50%;
        box-sizing: border-box;
        border: red solid;
    }
    
    /* Changed the max-width for testing purposes */
    @media (max-width: 600px) {
        .container {
            flex-direction: column;
        }
    }
    <div class="container">
      <div class="block">content 1</div>
      <div class="block">content 2</div>
      <div class="block">content 3</div>
      <div class="block">content 4</div>
    </div>

    【讨论】:

    • 嗨,感谢您的快速回答,但这并不能完全解决问题。
    • @Clumpsypenguin 你还需要什么?
    • 我们可以聊聊,我可以用更多的图片解释一下吗?
    • 桌面分辨率下的图像在整个网站上展开
    • @Clumpsypenguin 就像我在我的解决方案中所说的那样,这是一个非常简单的解决方案,它为您提供了可以使用的框架。根据您的屏幕截图,我不可能知道您希望使用什么尺寸。您需要在.container 上设置容器宽度,并定义图像的宽度,以限制它们。
    猜你喜欢
    • 1970-01-01
    • 2020-01-25
    • 2014-01-03
    • 2015-10-05
    • 1970-01-01
    • 2016-11-11
    • 2020-03-09
    • 2018-11-09
    • 2023-03-30
    相关资源
    最近更新 更多