使用flex使div具有相同的高度

3

我有一些块,希望它们能够在同一行显示,并且无论文本内容多少都有相同的高度。文本内容可能随时变化。我已经让这些块在同一行显示了,但是如何使它们的高度相同我不知道该怎么做。

HTML:

<div class="article_block">
   <div class="article_block_content">
       <div class="article_block_content_left">
          <img class="article_image" alt="<%= headline %>" title="<%= headline %>" src="<%= media_path %>"/>
        </div>

        <div class="article_block_content_right">
          <h5 class="article-tag"><%= category.name %></h5>
          <h2 class="article-title"><%= headline %></h2>
          <h4 class="article-subtitle">This is the future home of the article headline. I hope this makes you want to read the article.</h4>
        </div>
    </div>
</div>

CSS(层叠样式表):
.article_block {
    width: 33%;
    display: inline-flex;

    .article_block_content{
      margin: 10px;
      height: inherit;

      .article_block_content_left {

      }
      .article_block_content_right {
        padding: 20px;

        .article-tag {
          text-align: center;
          color: #7d8a8f;
          text-transform: capitalize;
          font-size: 14px;
          font-family: 'Open Sans';
          padding-top: 15px;
        }
        .article-title {
          text-align: center;
          font-family: 'Merriweather';
          color: #333;
        }
        .article-subtitle {
          text-align: center;
          font-family: 'Merriweather';
          font-style: italic;
          color: #464849
        }
      }
    }
  }

目前正在发生以下情况 在此输入图片描述

1个回答

2
在您的 .article-block divs 的父级元素上设置 display: flex。这将使三个 .article-block divs 保持相同的高度(因为 align-items 的默认值是 stretch)。请注意保留 HTML 标签。

* { box-sizing: border-box; }

.article-block-wrap {
  display: flex;
  margin: 0 -10px;
}

.article_block {
    padding: 5px;
    display: flex;
    flex: 0 0 33.333%;
    overflow: hidden;
}

.article_block_content{
    background: rgba(0,0,0,0.2);
}

.article_block_content_left {
    text-align: center;
}

.article_block_content_right {
  padding: 20px;
}

.article-tag {
  text-align: center;
  color: #7d8a8f;
  text-transform: capitalize;
  font-size: 14px;
  font-family: 'Open Sans';
  padding-top: 15px;
}

.article-title {
  text-align: center;
  font-family: 'Merriweather';
  color: #333;
}

.article-subtitle {
  text-align: center;
  font-family: 'Merriweather';
  font-style: italic;
  color: #464849
}
<div class="article-block-wrap">

  <div class="article_block">
     <div class="article_block_content">
         <div class="article_block_content_left">
            <img class="article_image" src="https://placekitten.com/150/275"/>
          </div>

          <div class="article_block_content_right">
            <h5 class="article-tag">Category Name</h5>
            <h2 class="article-title">This is a long headline</h2>
            <h4 class="article-subtitle">This is the future home of the article headline. I hope this makes you want to read the article.</h4>
          </div>
      </div>
  </div>

  <div class="article_block">
     <div class="article_block_content">
         <div class="article_block_content_left">
            <img class="article_image" src="https://placekitten.com/150/300"/>
          </div>

          <div class="article_block_content_right">
            <h5 class="article-tag">Category Name</h5>
            <h2 class="article-title">This is a much longer headline than either the first or third block</h2>
            <h4 class="article-subtitle">This is the future home of the article headline. I hope this makes you want to read the article.</h4>
          </div>
      </div>
  </div>

  <div class="article_block">
     <div class="article_block_content">
         <div class="article_block_content_left">
            <img class="article_image" src="https://placekitten.com/150/250"/>
          </div>

          <div class="article_block_content_right">
            <h5 class="article-tag">Category Name</h5>
            <h2 class="article-title">This is a slightly longer headline</h2>
            <h4 class="article-subtitle">
              This is the future home of the article headline. I hope this makes you want to read the article.
              This is the future home of the article headline. I hope this makes you want to read the article.
            </h4>
          </div>
      </div>
  </div>
     
</div><!-- .article-block-wrap -->


1
您可以删除不正确的部分,只保留有关正确解决方案的描述。在我看来,这将比当前版本更好。 :) - Mohammad Usman
谢谢。当我这样做时,块会对齐在顶部,但是彩色块仍然不是相同的大小。本质上,这只是将其垂直对齐到顶部。 - Andrew C
@AndrewC - 在我的浏览器中,这些块的高度都是相同的(可以通过它们的背景颜色看出)。请记住,在IE/Edge中,flex(及相关属性)需要加上前缀-webkit-ms - Adam Jenkins
@Adam,啊好的。我现在可以在Codepen上看到你的答案了。虽然我自己还没有看到这个效果,但我理解了这个概念。我猜可能是一些外部样式影响了它。感谢你的帮助! - Andrew C

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接