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

用flexbox将元素底部对齐

哈骞仕
2023-03-14

我与一些孩子有div:

<div class="content">
  <h1>heading 1</h1>
  <h2>heading 2</h2>
  <p>Some more or less text</p>
  <a href="/" class="button">Click me</a>
</div>

我想要以下布局:

 -------------------
|heading 1          |
|heading 2          | 
|paragraph text     |
|can have many      |
|rows               |
|                   |
|                   |
|                   | 
|link-button        |
 -------------------

无论p中有多少文本,我都希望将.button始终贴在底部,而不将其从流中取出。我听说Flexbox可以实现这一点,但我不能让它工作。

共有2个答案

胡越泽
2023-03-14

您可以使用Display:flex将一个元素定位到底部,但我认为您不希望在这种情况下使用flex,因为它会影响您的所有元素。

要使用flex将元素定位到底部,请尝试以下操作:

.container {
  display: flex;
}

.button {
  align-self: flex-end;
}

您最好的方法是将Position:absolute设置为按钮,并将其设置为bottom:0,或者您可以将按钮放置在容器外部,并使用负的Transform:translateY(-100%)将其放入容器中,如下所示:

.content {
    height: 400px;
    background: #000;
    color: #fff;
}
.button {
    transform: translateY(-100%);
    display: inline-block;
}

检查此JSFiddle

章鸿光
2023-03-14

可以使用自动边距

在通过justify-contentalign-self对齐之前,任何正的可用空间都会分配给该维度中的自动边距。

所以您可以使用其中之一(或两者):

p { margin-bottom: auto; } /* Push following elements to the bottom */
a { margin-top: auto; } /* Push it and following elements to the bottom */

null

.content {
  height: 200px;
  border: 1px solid;
  display: flex;
  flex-direction: column;
}
h1, h2 {
  margin: 0;
}
a {
  margin-top: auto;
}
html lang-html prettyprint-override"><div class="content">
  <h1>heading 1</h1>
  <h2>heading 2</h2>
  <p>Some text more or less</p>
  <a href="/" class="button">Click me</a>
</div>
 类似资料:
  • 问题内容: 我有一些孩子: 我想要以下布局: 无论文本中有多少文本,我都希望始终将其始终停留在底部,而不会将其从流程中移出。我听说这可以通过Flexbox实现,但我无法使其正常工作。 问题答案: 您可以使用自动边距 在通过和对齐之前,任何正的自由空间都会分配给该维度中的自动边距。 因此,您可以使用以下一种(或两种): 或者,您可以在增长之前使元素填充可用空间:

  • 问题内容: 我有应该根据内容动态更改高度的容器。对于给定行中的所有容器,无论每个容器的内容如何,​​底部文本都应固定在底部。 我认为与一起使用可以将其推到最低点,但似乎没有任何作用。 问题答案: 您需要使父级成为flex容器: 然后,告诉元素填充可用高度:

  • 问题内容: 我正在使用flexbox对齐我的子元素。我想做的是将一个元素居中,而另一个保持最左对齐。通常我会使用来设置left元素。问题是将中心元素推离中心。这是可能的 ,而不 使用绝对定位? HTML和CSS 问题答案: 编辑: 请参阅下面的[Solo答案,这是更好的解决方案。 flexbox背后的想法是提供一个框架,可以轻松地将容器中尺寸可变的元素对齐。这样,提供一个布局而完全忽略一个元素的宽

  • 我试图将容器中的三个div中的一个进行底部对齐,但遇到了一些问题。 正如您将看到的,如果我尝试在

  • 问题内容: 我想有A B和C中间对齐。 我如何才能D完全右移? 问题答案: 以下是实现此布局的五个选项: CSS定位 带有不可见DOM元素的Flexbox 带有不可见伪元素的Flexbox Flexbox与 flex: 1 CSS网格布局 方法1:CSS定位属性 应用于容器。 应用于项目D。 现在,此项目已完全放置在flex容器中。 更具体地说,项目D从文档流中删除,但停留在最接近的祖先的范围内。

  • 我正在设计的网页布局像这样:http://jsfiddle.net/5sTub/ 编辑:注意:我并不是想要一个黏糊糊的页脚。我只想把它放在页面底部。回答之前请先看小提琴 我试图定位在页面底部的页脚,但无法像你在上面的链接中看到的那样。我尝试了在互联网上找到的一切,包括设置容器元素的位置:相对;页脚的