【问题标题】:How to make flex item height of its parent?如何使其父项的弹性项目高度?
【发布时间】:2019-08-02 18:31:00
【问题描述】:

我有一个简单的导航类型布局,使用 flex 来水平间隔不同宽度的项目。这些项目之间有线条,但它们的高度不同,因为内容具有不同的高度

如何使项目的高度与父项的高度一致,以便所有分割线都位于父项的顶部。

https://codepen.io/anon/pen/zbEMVd

* {
  font-family: sans-serif;
}

.wrap {
  border: 1px solid grey;
  display: flex;
  padding: 5px;
  justify-content: space-between;
  max-width: 1200px;
}

.item:not(:last-of-type) {
  border-right: 2px solid red;
}

.item-1 {
  width: 150px;
}

.item-2 {
  width: 50px;
}

.item-3 {
  width: 50px;
}

.item-4 {
  width: 50px;
}

.item-5 {
  flex: 1;
}

.item-6 {
  width: 50px;
}
<div class="wrap">
  <div class="item item-1">One</div>
  <div class="item item-2">Two Two Two Two Two </div>
  <div class="item item-3">Three Three Three</div>
  <div class="item item-4">Four</div>
  <div class="item item-5">Five</div>
  <div class="item item-6">Six</div>
</div>

【问题讨论】:

  • .item 中删除align-self,并添加display:flex; align-items: flex-end;

标签: html css flexbox alignment


【解决方案1】:

.item 中删除align-self,然后添加display:flex; align-items: flex-end;

.item{
  display: flex;
  align-items: flex-end;
  /* ... */
}

https://codepen.io/anon/pen/ZPXVra

【讨论】:

    【解决方案2】:

    item 元素设为reverse-column flexbox(并从中删除align-self: flex-end)以获得效果 - 参见下面的演示:

    * {
      font-family: sans-serif;
    }
    
    .wrap {
      border: 1px solid grey;
      display: flex;
      padding: 5px;
      justify-content: space-between;
      max-width: 1200px;
    }
    
    .item {
      /* align-self: flex-end; */
      display: flex; /* ADDED */
      flex-direction: column-reverse; /* ADDED */
      background: #ddd;
    }
    .item:not(:last-of-type) {
      border-right: 2px solid red;
    }
    
    .item-1 {
      width: 150px;
    }
    
    .item-2 {
      width: 50px;
    }
    
    .item-3 {
      width: 50px;
    }
    
    .item-4 {
      width: 50px;
    }
    
    .item-5 {
      flex: 1;
    }
    
    .item-6 {
      width: 50px;
    }
    <div class="wrap">
      <div class="item item-1">One</div>
      <div class="item item-2">Two Two Two Two Two  </div>
      <div class="item item-3">Three Three Three</div>
      <div class="item item-4">Four</div>
      <div class="item item-5">Five</div>
      <div class="item item-6">Six</div>
    </div>

    【讨论】:

    • @cdmt 您能否在此问题中投票/接受答案并关闭问题,谢谢!
    猜你喜欢
    • 2021-05-14
    • 1970-01-01
    • 2015-02-18
    • 2017-07-04
    • 2014-08-09
    • 2020-01-29
    • 2021-07-19
    • 2019-03-25
    • 2023-02-07
    相关资源
    最近更新 更多