【问题标题】:Flex-box two boxes wrap when scaling window browser缩放窗口浏览器时flex-box两个框换行
【发布时间】:2017-04-09 05:35:59
【问题描述】:

我们在一个父母中有四个孩子。我想实现你在图片上看到的效果。

<article class="parent">
<figure class="child">
    <img src="img/example.jpg" alt="" />
    <figcaption">
        <p>description</p>
    </figcaption>
</figure>
<figure class="child">
    <img src="img/example.jpg" alt="" />
    <figcaption">
        <p>description</p>
    </figcaption>
</figure>
<figure class="child">
    <img src="img/example.jpg" alt="" />
    <figcaption">
        <p>description</p>
    </figcaption>
</figure>
<figure class="child">
    <img src="img/example.jpg" alt="" />
    <figcaption">
        <p>description</p>
    </figcaption>
</figure>
</article>

child有一个固定参数宽度:300px;

但我们无法编辑 html (+div)。

我们只能对那件事使用 CSS。 这可能吗?

我的英语很差 sry :)

【问题讨论】:

  • 媒体查询可能吗?
  • 在主规则中禁用flex-wrap: wrap。在设置为屏幕宽度仅允许两个项目的断点的媒体查询中,恢复flex-wrap: wrap。使用此方法,您可以控制包装发生的位置,而不是浏览器。

标签: html css flexbox responsive


【解决方案1】:

晚上好,Agropl!

也许这可以帮助您朝着正确的方向前进——我对使用 flexbox 还是很陌生,所以如果这可以做得更正确,请随时纠正我。 :)

http://codepen.io/andreastherkildsen/pen/pNeajo

<div class="flex-container">
  <div class="flex-item">
    <h3>1</h3>
    <p>Lorem ipsum, Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,</p>
  </div>
  <div class="flex-item">
     <h3>1</h3>
    <p>Lorem ipsum, Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,</p>
  </div>

  <div class="flex-item">
     <h3>1</h3>
    <p>Lorem ipsum, Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,</p>
  </div>

  <div class="flex-item">
     <h3>1</h3>
    <p>Lorem ipsum, Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,</p>
  </div>
 </div>

风格

.flex-container{
  height: 500px;
  background: blue;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  align-items:  baseline;
  -webkit-flex-flow: row wrap;
  justify-content: space-around;

}

.flex-item{
  background: tomato;
  width: 300px;
  height: auto;
  margin-top: 10px;
  color: white;
  font-weight: bold;
  text-align: center;
  display: flex;
}

.flex-item h3{
  font-size: 50px;
  padding-left: 50px;
}

.flex-item p{
  font-size: 16px;
  padding-left: 50px; 
}

@media all and (max-width: 1230px) {
  .flex-item{
    padding-right:100px;
  }
}

【讨论】:

    【解决方案2】:

    也许是这样的? https://codepen.io/jnnkm/pen/jVwZrX

    .parent {
      display: flex;
      flex-direction: row;
      flex-wrap: wrap;
      width: 800px;
    }
    
    @media only screen and (min-device-width: 1000px)  {
    
      .parent {
        width: initial; 
      }
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 2023-01-16
    • 1970-01-01
    • 2016-04-25
    相关资源
    最近更新 更多