代码之家  ›  专栏  ›  技术社区  ›  Naomi

使用媒体查询将flexbox网格从4x1转换为2x2

  •  1
  • Naomi  · 技术社区  · 6 年前

    我有一个外部div,里面有4张卡。当我达到一个特定的宽度(通过媒体查询完成)时,我希望将卡包装成2x2。

    我试着设置 width:50% 对于 .inner 但这并不能解决问题。

    如何使用flexbox实现这一点?

    .outer{display:flex;flex-wrap:wrap;}
    .inner{width:100px;height:200px;background-color:blue;margin-right:10px}
    <div class="outer">
    <div class="inner"></div>
    <div class="inner"></div>
    <div class="inner"></div>
    <div class="inner"></div>
    </div>
    1 回复  |  直到 5 年前
        1
  •  2
  •   VXp Kadir BuÅ¡atlić    6 年前

    您可以这样做:

    body,
    .outer,
    .inner {margin: 0}
    
    .outer {display: flex; flex-wrap: wrap}
    
    .inner {
      flex: 1;
      height: 200px;
      margin: 0 5px;
      background: blue;
    }
    
    @media (max-width: 480px) {
      .inner {
        flex: 0 1 calc(50% - 10px); /* - 2 x 5px left & right margin */
        margin-bottom: 10px;
      }
    }
    <div class="outer">
      <div class="inner"></div>
      <div class="inner"></div>
      <div class="inner"></div>
      <div class="inner"></div>
    </div>