css - 使用 Flexbox 对齐孙子元素

标签 css flexbox

我正在学习 Flexbox,但仍然不确定我是否完全理解所有部分如何组合在一起。我想垂直对齐这些列,使灰色框彼此对齐:http://codepen.io/anon/pen/EPZQZq (我更新了 Codepen HTML/CSS,以更好地反射(reflect)我的响应式布局所面临的挑战。)

一些额外的上下文:这是针对响应式网站的,因此宽度:800px可能有点误导。灰色条不能用边框代替,它们是实际内容的替代品。

代码:

html {
  box-sizing: border-box;
}

*,
*:before,
*:after {
  box-sizing: inherit;
}

#container {
  width: 800px;
  font: 14px/22px "helvetica neue", sans-serif;
  display: flex;
}

.item {
  width: 33.33%;
  display: flex;
  flex-direction: column;
  padding: 0 10px;
}

.item .blob {
  width: 100%;
  height: 20px;
  background: #dedede;
}
<div id="container">
  <div class="item">
    <h1>Title TK</h1>
    <div class="blob"></div>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
  </div>
  <div class="item">
    <h1>A longer title TK TK TK</h1>
    <div class="blob"></div>
    <p>Lorem ipsum dolor sit amet.</p>
  </div>
  <div class="item">
    <h1>A title that nobody could have possibly accounted for</h1>
    <div class="blob"></div>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
  </div>
</div>

最佳答案

您想要控制.item h1的高度。您可以通过以下任一方式完成:

.item h1 {
   min-height: 90px;
   max-height: 90px;
}

或者, flex 盒方式:

.item h1 {
   flex-basis: 90px;
   flex-shrink: 0; /* if you don't want it to shrink */
   flex-grow: 0; /* if you don't want it to grow */
}

关于css - 使用 Flexbox 对齐孙子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34581724/

相关文章:

html - 跨浏览器 - CSS 填充问题

css - 响应式电子邮件模板中的媒体查询

html - <div> 作为背景

html - 如何让两张图片适合 html 中的任何屏幕尺寸?

html - 如何保留 VH 布局的部分?

html - Flex div 在 IE11 中不换行文本,但在 Chrome、FF 和 Opera 中

css - 带有 bootstrap 4 的嵌套 flexbox 列在 firefox 上显示错误但在 chrome 上显示正常

css - 关于图像对齐的简单CSS问题

css - 为什么CSS变量在@page规则中不起作用

flexbox - ion-content 内的 ionic 4 中心 ionic 网格