当前位置: 首页 > 知识库问答 >
问题:

如何垂直对齐卡片内的页脚,高度相等,但主体部分具有柔性

柯书
2023-03-14

我已经制定了以下最低案例场景:https://jsfiddle.net/frp61gh7/

超文本标记语言:

<div class="row">
  <div class="card">
    <h2>card</h2>
    <p>
    some body text. Doesn't really matter. However dit part can have various length. For instance and large image or more text then usual. In that case all other cards should be equally high of that row..
    </p>
    <div class="footer">
    <p>
    this is some kind of footer that should always stick to the bottom
</p>
    </div>
  </div>
  <div class="card">x5...etc</div>
</div>

CSS:

.row{
 display: flex;
 height: 100%;
 flex-wrap: wrap;
}
.card{
  width: 31%;
  border: 1px solid blue;
  margin: 0.5%;
}
.footer{
  border: 1px solid red;
}
p{
  flex-grow: 1;
}

在那里,我有6张卡,在一个Flexbox容器中流动,就像我想要的一样。(蓝色边框)卡片高度相等,按照我想要的方式流动。每行牌的高度可能会随着该行最高的牌而变化。在真实场景中,这是可行的。

但是,每张卡片的主体可以是高的,也可以是低的,这取决于它的内容(例如,在现实生活中,productimage的宽度是固定的,但高度是可变的)。现在的问题是:由于主体高度灵活,我似乎无法将页脚div(红色边框)放到卡的底部内部。位置:绝对是没有选择的,因为我尝试了这个,这个和灵活的身体变得混乱。

有什么建议吗?

共有2个答案

孙熠彤
2023-03-14

此外

只要没有更好的答案,我现在已经找到了一种解决问题的方法。可能会帮助他人和/或让人感觉到我希望最终结果是什么:

在我自己的解决方案中,我添加了一个与页脚高度相同的占位符(是的,回到遗迹技术)...

谜语小提琴:https://jsfiddle.net/qfo42nh8/

CSS:

.row{
 display: flex;
 height: 100%;
 flex-wrap: wrap;
}
.placeholder{
  height: 100px;
}
.card{
  width: 31%;
  border: 1px solid blue;
  margin: 0.5%;
  position: relative;
}
.footer{
  border: 1px solid red;
  position: absolute;
  bottom: 0;
  height: 100px;
}

html:

<div class="row">
 <div class="card">
    <h2>card</h2>
    <p>
    piece of body that needs flexible height..
    </p>
    <div class="placeholder">
    </div>
    <div class="footer">
    <p>
    footer content
</p>
    </div>
  </div> <!-- x 5 extra..you get the idea -->
</div>
巫马自明
2023-03-14

制作卡片弹性容器并将方向设置为“列”,然后给出页脚页边距顶部:auto

这会将页脚推到每列的底部。

.row {
  display: flex;
  height: 100%;
  flex-wrap: wrap;
}

.card {
  width: 31%;
  border: 1px solid blue;
  margin: 0.5%;
  display:flex;
  flex-direction: column;
}

.footer {
  border: 1px solid red;
  margin-top: auto;
}

p {
  flex-grow: 1;
}
<div class="row">
  <div class="card">
    <h2>card</h2>
    <p>
      some body text. Doesn't really matter. However dit part can have various length. For instance and large image or more text then usual. In that case all other cards should be equally high of that row..
    </p>
    <div class="footer">
      <p>
        this is some kind of footer that should always stick to the bottom</p>
    </div>
  </div>
  <div class="card">
    <h2>card</h2>
    <p>
      smaller piece of body..
    </p>
    <div class="footer">
      <p>
        this is some kind of footer that should always stick to the bottom</p>
    </div>
  </div>
  <div class="card">
    <h2>card</h2>
    <p>
      And this piece of body will be of medium size. I just have to see how I can fill this with nonsense text. I'm drinking a cup of coffee and working at home because of Corona.
    </p>
    <div class="footer">
      <p>
        this is some kind of footer that should always stick to the bottom</p>
    </div>
  </div>
  <div class="card">
    <h2>card</h2>
    <p>
      some body text. Doesn't really matter. However dit part can have various length. For instance and large image or more text then usual. In that case all other cards should be equally high of that row..
    </p>
    <div class="footer">
      <p>
        this is some kind of footer that should always stick to the bottom</p>
    </div>
  </div>
  <div class="card">
    <h2>card</h2>
    <p>
      smaller piece of body..
    </p>
    <div class="footer">
      <p>
        this is some kind of footer that should always stick to the bottom</p>
    </div>
  </div>
  <div class="card">
    <h2>card</h2>
    <p>
      And this piece of body will be of medium size. I just have to see how I can fill this with nonsense text. I'm drinking a cup of coffee and working at home because of Corona.
    </p>
    <div class="footer">
      <p>
        this is some kind of footer that should always stick to the bottom</p>
    </div>
  </div>
</div>
 类似资料:
  • 问题内容: 这将是垂直居中在限定的宽度/高度的任何内容的正确方法。 在示例中,有两个具有不同高度的内容,什么是使用class垂直居中的最佳方法?(并且适用于所有浏览器,而没有的解决方案) 想到了一些解决方案,但想知道其他想法,一个正在使用和。 问题答案: 我对此进行了一些研究,从中发现您有四个选择: 版本1:父div,显示为表格单元 如果您不介意在父div上使用,则可以使用以下选项: 版本2:具有

  • 我的钢笔 http://codepen.io/helloworld/pen/dqgdk 我想垂直对齐包装器div内部的3个div。3个div中的每一个都应该有33%的高度。我可以使布局工作时,div有一个33px的高度,但我需要它的百分比,因为包装div的高度动态变化。有时是100px的高度,有时是70px等等。 我只想所有3总是正确的使用百分比高度对齐。 将divs与百分比对齐的方法是什么? H

  • 问题内容: 我有一个(水平)居中的外部div,其中包含两个宽度未知的元素: 默认情况下,两个浮点都是顶部对齐的,并且高度/高度未知/不同。有什么办法可以使它们垂直居中? 我最终做了外股 和内部div 但我很好奇,是否有办法用花车做到这一点。 问题答案: 您不能直接执行此操作,因为浮点数与顶部对齐: 如果有一个线框,则浮动框的外部顶部与当前线框的顶部对齐。 确切的规则说(强调我的): 浮动框的外部顶

  • 我知道这个问题已经被问过很多次了,但我已经试过了我所读到的任何东西。 我想水平和垂直对齐一个div内的img。 容器div在一个modal中显示图片,一旦点击它的预览。那么它将包含任意大小的图片。 我可以水平或垂直对齐,但不能同时对齐。 HTML代码:https://pastebin.com/7dcq1ajg null 模态示例(img未垂直对齐):https://ibb.co/j4nj1q (.

  • 垂直对齐 1. grid-template-areas 属性值保持换行,并使用空格保持每列垂直对齐。 例如: .foo { grid-template-areas: "header header" "nav main" "footer ...."; } 2. grid、grid-template