html - 等高列并将最后一项与底部对齐

标签 html css flexbox

我有一个列表,其中每个 li 都有嵌套的容器。我尝试为所有列表项保留相同的高度,并将最后一个 div 推到底部。我将如何使用 flex 做到这一点?

ul.list-container {
  display: inline-flex;
  justify-content: space-between;
  list-style: none;
  margin: 0;
  padding: 0;
  text-align: center;
}

ul.list-container > li {
  flex-grow: 1;
  min-width: 200px;
  background-color: #e3e3e3;
  height: 100%;
  width: 100%;
} 

ul.list-container > li > .pus-me-to-the-bottom {
  
  color: red;
  margin-top: 10px;

  // this should expand to the bottom
}
<ul class="list-container">
  <li>
    <div class="title">title</div>
    <div class="pus-me-to-the-bottom">title</div>
  </li>

   <li>
    <div class="title">
Audiam inciderint intellegebat ne est, cu pri quidam deseruisse persequeris, consetetur elaboraret duo at. Sed quod veniam disputando in. An nam ferri tollit, ea quod doming facete nam. Eum omittam periculis te, ad pri viris tempor.</div>
    <div class="pus-me-to-the-bottom">title</div>
  </li>
  
   <li>
    <div class="title">title</div>
    <div class="pus-me-to-the-bottom">title</div>
  </li>
  
   <li>
    <div class="title">title</div>
    <div class="pus-me-to-the-bottom">title</div>
  </li>

</ul>

这是一个 codepen我正在尝试的一切

最佳答案

ul.list-container {
  display: inline-flex;
  justify-content: space-between;
  list-style: none;
  margin: 0;
  padding: 0;
  text-align: center;
}
ul.list-container > li {
  display: flex;             /* new; nested flex container */
  flex-direction: column;    /* new; stack flex items vertically */
  flex-grow: 1;
  min-width: 200px;
  background-color: #e3e3e3;
  /* height: 100%;           <-- remove to enable equal height columns; see reference #1 */
  width: 100%;
  border: 1px solid red;
}
ul.list-container > li > .pus-me-to-the-bottom {
  margin-top: auto;          /* new; see reference #2 */
  color: red;
  /* margin-top: 10px;       <-- remove */
  border: 1px solid black;
}
<ul class="list-container">
  <li>
    <div class="title">title</div>
    <div class="pus-me-to-the-bottom">title</div>
  </li>
  <li>
    <div class="title">
      Audiam inciderint intellegebat ne est, cu pri quidam deseruisse persequeris, consetetur elaboraret duo at. Sed quod veniam disputando in. An nam ferri tollit, ea quod doming facete nam. Eum omittam periculis te, ad pri viris tempor.</div>
    <div class="pus-me-to-the-bottom">title</div>
  </li>
  <li>
    <div class="title">title</div>
    <div class="pus-me-to-the-bottom">title</div>
  </li>
  <li>
    <div class="title">title</div>
    <div class="pus-me-to-the-bottom">title</div>
  </li>
</ul>

引用资料:

  1. Equal Height Columns with Flexbox
  2. Methods for Aligning Flex Items

关于html - 等高列并将最后一项与底部对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36873419/

相关文章:

html - 背景重复对 FF 42 的奇怪影响

html - 如何制作有效的 <li> 链接

javascript - 一致的逐渐淡化的文字效果

html - 删除按钮上的 3D 推送效果

HTML -- margin-left & -right 不适用于 flexbox

javascript - 使用 jqueryeach(),确保这个 html 表中的列数不超过 5 的最佳方法是什么?

javascript - Div 对齐,避免在两个 div 中使用相同的 html

internet-explorer - 在 IE 中重现 CSS3 webkit 转换和转换

html - 创建响应式网格布局,其中所有元素在垂直和水平方向上彼此等距

具有单个容器和不同大小元素的 CSS flexbox