Css flex div 元数据在底部拉伸到相同的高度
Css flex div with meta data at the bottom stretch to same height
我有一个包含两个部分的框,header 带有图像,底部的内容分为两个部分,文本和操作按钮。
问题是文本有时大有时小,我需要根据较大的框将所有框拉伸到相同的高度。
这是我对 flex 的尝试,但由于某些原因它不起作用。
.wrapper {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
.wrapper > div {
max-width: 25%;
margin-right: 1rem;
}
.wrapper > div .img {
height: 100px;
width: 200px;
}
.wrapper > div .img img {
max-width: 100%;
}
.wrapper > div .meta {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: justify;
-webkit-justify-content: space-between;
-ms-flex-pack: justify;
justify-content: space-between;
-webkit-align-content: space-between;
-ms-flex-line-pack: justify;
align-content: space-between;
}
<section class="wrapper">
<div>
<div class="img">
<img src="http://lorempixel.com/400/200" alt="" />
</div>
<div class="meta">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repellendus tempora perspiciatis repellat minus voluptates iure ratione doloremque nulla excepturi ducimus, autem modi temporibus expedita quos eum magnam saepe facilis itaque?</p>
<div class="action">
<button>click me</button>
</div>
</div>
</div>
<div>
<div class="img">
<img src="http://lorempixel.com/400/200" alt="" />
</div>
<div class="meta">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repellendus tempora perspiciatis</p>
<div class="action">
<button>click me</button>
</div>
</div>
</div>
</section>
我想你想要这样的东西:
请注意,我已将内部 div(.wrapper
的直接子代)设为 flex-direction:column
。
我还把按钮 div 移到了 meta
div 之外,所以它总是在底部。
.wrapper {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
.wrapper > div {
max-width: 25%;
margin-right: 1rem;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
border: 1px solid green;
}
.wrapper > div .img {
-webkit-box-flex: 0;
-webkit-flex: 0 0 100px;
-ms-flex: 0 0 100px;
flex: 0 0 100px;
}
.wrapper > div .img img {
max-width: 100%;
}
.wrapper > div .meta {
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
}
.wrapper > div .action {
text-align: center;
margin-bottom: .5em;
}
<section class="wrapper">
<div>
<div class="img">
<img src="http://lorempixel.com/400/200" alt="" />
</div>
<div class="meta">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repellendus tempora perspiciatis repellat minus voluptates iure ratione doloremque nulla excepturi ducimus, autem modi temporibus expedita quos eum magnam saepe facilis itaque?</p>
</div>
<div class="action">
<button>click me</button>
</div>
</div>
<div>
<div class="img">
<img src="http://lorempixel.com/400/200" alt="" />
</div>
<div class="meta">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repellendus tempora perspiciatis</p>
</div>
<div class="action">
<button>click me</button>
</div>
</div>
</section>
我有一个包含两个部分的框,header 带有图像,底部的内容分为两个部分,文本和操作按钮。
问题是文本有时大有时小,我需要根据较大的框将所有框拉伸到相同的高度。
这是我对 flex 的尝试,但由于某些原因它不起作用。
.wrapper {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
.wrapper > div {
max-width: 25%;
margin-right: 1rem;
}
.wrapper > div .img {
height: 100px;
width: 200px;
}
.wrapper > div .img img {
max-width: 100%;
}
.wrapper > div .meta {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: justify;
-webkit-justify-content: space-between;
-ms-flex-pack: justify;
justify-content: space-between;
-webkit-align-content: space-between;
-ms-flex-line-pack: justify;
align-content: space-between;
}
<section class="wrapper">
<div>
<div class="img">
<img src="http://lorempixel.com/400/200" alt="" />
</div>
<div class="meta">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repellendus tempora perspiciatis repellat minus voluptates iure ratione doloremque nulla excepturi ducimus, autem modi temporibus expedita quos eum magnam saepe facilis itaque?</p>
<div class="action">
<button>click me</button>
</div>
</div>
</div>
<div>
<div class="img">
<img src="http://lorempixel.com/400/200" alt="" />
</div>
<div class="meta">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repellendus tempora perspiciatis</p>
<div class="action">
<button>click me</button>
</div>
</div>
</div>
</section>
我想你想要这样的东西:
请注意,我已将内部 div(.wrapper
的直接子代)设为 flex-direction:column
。
我还把按钮 div 移到了 meta
div 之外,所以它总是在底部。
.wrapper {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
.wrapper > div {
max-width: 25%;
margin-right: 1rem;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
border: 1px solid green;
}
.wrapper > div .img {
-webkit-box-flex: 0;
-webkit-flex: 0 0 100px;
-ms-flex: 0 0 100px;
flex: 0 0 100px;
}
.wrapper > div .img img {
max-width: 100%;
}
.wrapper > div .meta {
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
}
.wrapper > div .action {
text-align: center;
margin-bottom: .5em;
}
<section class="wrapper">
<div>
<div class="img">
<img src="http://lorempixel.com/400/200" alt="" />
</div>
<div class="meta">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repellendus tempora perspiciatis repellat minus voluptates iure ratione doloremque nulla excepturi ducimus, autem modi temporibus expedita quos eum magnam saepe facilis itaque?</p>
</div>
<div class="action">
<button>click me</button>
</div>
</div>
<div>
<div class="img">
<img src="http://lorempixel.com/400/200" alt="" />
</div>
<div class="meta">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repellendus tempora perspiciatis</p>
</div>
<div class="action">
<button>click me</button>
</div>
</div>
</section>