使 div 元素的大小与其父元素内最大的 div 元素相同

3
我有一个带有3个子元素的
,但其中一个子元素的文本比其他子元素少,所以图片和按钮会移动。我希望图片的位置不依赖于文本的大小,以便它可以保持与最大子元素图片相同的位置。
父元素position: relative;和子元素position: absolute;无法解决问题,因为图片和按钮会重叠。

enter image description here

HTML:

 <div id="child">
    <h5>About us</h5>
    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec molestie. .</p>
    <img class="img-responsive" src="http://www.marijazaric.com/minimalism_responsive/images/picture1.jpg" alt=""/>
    <button>Read More</button>
 </div>

SASS:

.parent 
  display: flex
  flex-wrap: wrap
  justify-content: center

 #child
  border-style: solid
  margin-left: 25px 
  margin-right: 25px
3个回答

2
如果您将“child”元素的每个声明为flex容器,则可以获得所需的布局。这个快速示例假设有一个具有三个元素的父元素,其中“child”是一个class值而不是id值。在每个“child”中,允许

元素增长以占用所有可用的垂直空间。第三个“child”包括一个半高度的图像,以展示


谢谢!非常好用(Y),你是 Flex 之神哈哈。 - Fabian Arce
@FabianArce 没问题! - twernt

2

您可以使用嵌套的 flexbox,并使用 margin-top:auto 将图像推到底部,并使它们保持在同一行。

我在每个 <img><button> 周围添加了一个 <span> 标签。

.container {
  display: flex;
  justify-content: space-around;
}
.item {
  flex: 0 0 20%;
  display: flex;
  flex-direction: column;
  border: 1px solid;
}
.item h5 {
  margin: 0;
}
.item .pic {
  margin-top: auto;
}
.item .pic img {
  display: block;
  width: 100%;
}
<div class="container">
  <div class="item">
    <h5>About us</h5>
    <p>Donec molestie.</p>
    <span class="pic"><img src="//dummyimage.com/200" alt="" /></span>
    <span class="btn"><button>Read More</button></span>
  </div>
  <div class="item">
    <h5>About us</h5>
    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>
    <span class="pic"><img src="//dummyimage.com/200" alt="" /></span>
    <span class="btn"><button>Read More</button></span>
  </div>
  <div class="item">
    <h5>About us</h5>
    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec molestie. .</p>
    <span class="pic"><img src="//dummyimage.com/200" alt="" /></span>
    <span class="btn"><button>Read More</button></span>
  </div>
</div>


0

使用类似如下语句:

 <div id="child">
<ul>
    <li><h5>About us</h5></li>
    <li><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec molestie. .</p></li>
    <li><img class="img-responsive" src="http://www.marijazaric.com/minimalism_responsive/images/picture1.jpg" alt=""/></li>
    <li><button>Read More</button></li>
</ul>
 </div>

 SASS:
.parent 
  display: flex
  flex-wrap: wrap
  justify-content: center

 #child
  border-style: solid
  margin-left: 25px 
  margin-right: 25px

#child li {display:block};
#child ul {display:inline-table;}

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