【问题标题】:Creating responsive flexbox layout containing images in a certain pattern创建包含特定模式图像的响应式 flexbox 布局
【发布时间】:2018-06-22 23:40:38
【问题描述】:

我正在尝试使用 flexbox 创建包含图像的响应式布局。我已经实现了我想要的模式,但它没有响应。以下是模式:

https://jsfiddle.net/wcep5tuk/16/embedded/result/

即使模式看起来不错,但在调整窗口大小时,一切都崩溃了。这是我的 css:

.my-container {
  margin: 0 auto;
  height: auto;
  max-width: 70%;
  display: flex;
}

.left-flex-container {
  width: 59.4%;
  height: auto;
  display: flex;
  flex-wrap: wrap;
}

.right-flex-container {
  width: 35%;
  height: auto;
}

div.left-flex-container>img,
div.right-flex-container>img {
  max-width: 100%;
  height: auto;
  border: 1px solid #000;
}

还有我的html

<div class="my-container">
  <div class="left-flex-container">
     <img src="http://via.placeholder.com/789x330" alt="">
     <img src="http://via.placeholder.com/306x228" alt="">
     <img src="http://via.placeholder.com/481x228" alt="">
  </div>
  <div class="right-flex-container">
     <img src="http://via.placeholder.com/440x565" alt="">
  </div>
</div>

https://jsfiddle.net/wcep5tuk/16/

任何帮助将不胜感激。

【问题讨论】:

    标签: html css responsive-design flexbox


    【解决方案1】:

    通过查看您的代码,我假设您需要这些框来响应(拉伸或收缩)。

    这里是 CSS:

    .my-container {
        margin: auto;
        width: 70%;
        display: flex;
      }
    
      .left-flex-container {
        display: flex;
        flex-flow: column wrap;
      }
    
      .right-flex-container {
        display: flex;
        flex-flow: column wrap;
      }
    
      div.left-flex-container>img,
      div.right-flex-container>img {
        max-width: 100%;
        border: 1px solid #000;
      }
    

    在这种情况下,您不需要为每个框添加高度。 Div 或框内的图像设置框/总高度。 固定宽度会导致框之间有空间,使其看起来反​​应迟钝。

    如果您想在小屏幕上将右侧部分移动到左侧部分下方,则必须在 .my-container 类中使用带有 flex-flow:column wrap 的媒体规则。

    记住Flex-Box 仅适用于父子情况,不适用于父子情况!

    https://jsfiddle.net/7pmL9wpv/

    希望这会有所帮助!

    【讨论】:

    • 感谢您的回答,但这不是我正在寻找的模式。我想要的是这个:jsfiddle.net/wcep5tuk/16/embedded/result。我所做的是将容器分成两部分,左侧包含 3 个图像,其中一个在顶部(由于 flex-wrap:wrap)和 2 个在底部。 right-flex-container 的高度应该始终等于 left-flex-container 的高度,因此,保持一个盒状结构。我希望整个模式可以按比例放大和缩小。
    • @JohnSmith:从右容器中删除 flex-flow 属性。 jsfiddle.net/7pmL9wpv/4
    • 再说一次,这不是我想要实现的模式。我想要做出响应的模式是这样的:jsfiddle.net/wcep5tuk/16/embedded/result
    猜你喜欢
    • 2022-01-12
    • 2019-08-24
    • 2021-06-12
    • 2018-03-19
    • 2015-12-30
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多