html - css flexbox - 如何对齐 "card"设计中的相应元素?

标签 html css flexbox

这是我的例子, https://plnkr.co/edit/uj4Z7W8nT2CSQ34i150x

<style>
* {
  margin : 0;
  padding : 0;
}

#container {
  display : flex;
  justify-content : center;
  align-items : center;
  flex-wrap : wrap;
  align-content : center;
}

.offer {
  display : flex;
  align-items : center;
  background : #eee;
  flex-basis : 20vw;
  min-height : 45vh;
  flex-direction : column;
  margin : 1vw;
  border-radius : 1vh;
}

p {
  padding : 1vw;
}

img {
  width : 7vw;
  height : auto;
  margin-top : 0.5vh;
  margin-bottom : 1vh;
}

button {
  margin-bottom : 0;
}
</style>

如何将 img、标题和段落的开头与一些基线对齐以使所有卡片看起来更有条理?

即card top和img, title, paragaraph之间的距离应该是一样的。

在我的代码中它有不同的边距。

最佳答案

如果您删除 offer,即使您的标题行会有不同的行数,您也可以让它工作。

通过使用 order 属性,您可以在没有包装器的情况下告诉它们如何在组中对齐

* {
  margin : 0;
  padding : 0;
}

#container {
  display : flex;
  justify-content : center;
  flex-wrap : wrap;
}

#container > * {
  flex-basis : 22vw;
  margin: 0 1vw;
  background: #eee;
  box-sizing: border-box;
}

#container > .image {
  order: 1;
  padding : 10px 0;
  text-align: center;
}
#container > h3 {
  order: 2;
  padding : 10px 0;
  text-align: center
}
#container > p {
  order: 3;
  padding: 1vw;
}
#container > .button {
  order: 4;
  padding : 10px 0;
  text-align: center;
}

img {
  width : 7vw;
  height : auto;
}
<div id="container">

      <div class="image">
        <img src="http://www.pngall.com/wp-content/uploads/2016/06/Limited-offer-PNG-HD.png" alt="offer 1 description">
      </div>      
      <h3>offer 1</h3>
      <p>Lorem tenetur ad mollitia exercitationem fugit expedita est doloribus quia! Deserunt quia omnis molestias amet quibusdam accusamus? Minus doloremque deserunt earum neque natus. Corporis adipisci doloremque consectetur beatae incidunt? Veniam. 1</p>      
      <div class="button">
        <button>buy it!</button>
      </div>
      
      <div class="image">
        <img src="http://www.pngall.com/wp-content/uploads/2016/06/Limited-offer-PNG-HD.png" alt="offer 1 description">
      </div>
      <h3>offer 2 which has a longer text</h3>
      <p>Adipisicing minus quam beatae beatae error. Laudantium vel officia eum perspiciatis atque laborum Vel tempora architecto eos laborum veniam Quis nihil numquam ab reiciendis sapiente dolor Dolor adipisci nihil officia. 2</p>
      <div class="button">
        <button>buy it!</button>
      </div>

      <div class="image">
        <img src="http://www.pngall.com/wp-content/uploads/2016/06/Limited-offer-PNG-HD.png" alt="offer 1 description">
      </div>
      <h3>offer 3</h3>
      <p>Consectetur debitis maxime accusamus explicabo cupiditate Itaque quaerat laboriosam nisi ipsa possimus consequuntur Est fugit necessitatibus tempore eveniet provident Optio esse asperiores tempore eius perspiciatis perferendis architecto, mollitia dicta. Nihil! 3</p>
      <div class="button">
        <button>buy it!</button>
      </div>

      <div class="image">
        <img src="http://www.pngall.com/wp-content/uploads/2016/06/Limited-offer-PNG-HD.png" alt="offer 1 description">
      </div>
      <h3>offer 4</h3>
      <p>Consectetur minima illo optio quod repellat Perspiciatis omnis sed provident distinctio doloremque Odit est magnam aliquid accusamus expedita impedit Eligendi ab et soluta laboriosam sunt Debitis quidem provident ducimus saepe! 4</p>
      <div class="button">
        <button>buy it!</button>
      </div>

  </div>

关于html - css flexbox - 如何对齐 "card"设计中的相应元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44734426/

相关文章:

html - css2中以点结尾的文本溢出应该如何完成?

html - 为什么 `max-width` 比 `min-width` 对于响应式电子邮件设计更好?

css - CakePHP : Difference between "$this->fetch(' css') & $this->Html->css ('cake.generic' ) in cake php

css - 在 flex 元素上显示表格

css - Flexbox css3 使响应居中的行?

javascript - HTML 日期字段无法设置回来自后端的日期字段

html - UL/LI 列表项全 Angular

html - 最小宽度随内容增长的 div

javascript - 替换 Rails 表单字段

html - 响应式 Div 布局重排