【问题标题】:Aligning children of two flexbox containers对齐两个 flexbox 容器的子项
【发布时间】:2018-08-08 12:42:45
【问题描述】:

我需要创建两个带有子项的 flexbox 容器,第二个容器具有第一个的子项的子集,但我希望它们的宽度与上面的对齐。孩子们使用 width 和 flex 进行调整,但由于第二个容器的孩子较少,因此它们的实际宽度不匹配。看这个:https://codepen.io/anon/pen/LBgKmR

我不能只在第二个容器中放入更多项目来填充 html。我需要设置一个 flex-container 的属性来声明它们的子宽度。

这样的事情可能吗?

这里是codepen的内容:

    .flex-container {
      padding: 0;
      margin: 0;
      list-style: none;
      
      display: flex;
      width: 100%;
    }
    
    .item {
      padding: 5px;
      height: 150px;
      margin-top: 10px;
      
      line-height: 150px;
      color: white;
      font-weight: bold;
      font-size: 3em;
      text-align: center;
    }
    
    .flex-item {
      background: tomato;
      flex: 1;
    }
    <ul class="flex-container">
      <li class="item flex-item">1</li>
      <li class="item flex-item">2</li>
      <li class="item" style="background-color: green; width: 50px">3</li>
      <li class="item flex-item">4</li>
      <li class="item flex-item">5</li>
      <li class="item flex-item">6</li>
    </ul>
    
    <ul class="flex-container">
      <li class="item flex-item">a</li>
      <li class="item flex-item">b</li>
      <li class="item" style="background-color: green; width: 50px">c</li>
      <li class="item flex-item">d</li>
    </ul>

【问题讨论】:

  • 所以第一个将始终拉伸其孩子,而第二个应该跟随?这个数字是固定的吗?
  • 第一个应该和现在一样。我想告诉第二个容器它应该为“a”和“b”计算子项,因为它与在第一个容器上为“1”和“2”计算的宽度相同。
  • 只有在内容是动态的情况下才能使用 CSS
  • flex 容器的子容器不知道其他容器中的子容器在做什么。他们没有任何关联。他们需要是兄弟姐妹才能匹配他们的行为(仅使用 CSS)。

标签: css flexbox


【解决方案1】:

网格布局的grid-template-columns 是我真正想要和需要的,一种父声明子宽度的方法。

【讨论】:

    猜你喜欢
    • 2018-07-05
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    相关资源
    最近更新 更多