当前位置:  开发笔记 > 前端 > 正文

如何将div的内容与底部对齐?

如何解决《如何将div的内容与底部对齐?》经验,为你挑选了9个好方法。

说我有以下CSS和HTML代码:

#header {
  height: 150px;
}

标题部分是固定高度,但标题内容可能会更改.我想将标题的内容垂直对齐到标题部分的底部,因此最后一行文本"粘贴"到标题部分的底部.

因此,如果只有一行文字,那就像:

-----------------------------
| Header title
|
|
|
| header content (resulting in one line)
-----------------------------

如果有三行:

-----------------------------
| Header title
|
| header content (which is so
| much stuff that it perfectly
| spans over three lines)
-----------------------------

怎么能在CSS中完成?



1> cletus..:

相对+绝对定位是您最好的选择:

#header {
  position: relative;
  min-height: 150px;
}

#header-content {
  position: absolute;
  bottom: 0;
  left: 0;
}

#header, #header * {
  background: rgba(40, 40, 100, 0.25);
}


2> Patrick McEl..:

使用CSS定位.

/* Creates a new stacking context on the header */
#header {
  position: relative;
}

/* Positions header-content at the bottom of header's context */
#header-content {
  position: absolute;
  bottom: 0;
}

正如克莱特斯所说,你需要确定标题内容才能使其发挥作用.

some header content

bottom


fyi ...这导致我的标题内容崩溃其宽度,所以我不得不在标题内容上添加`width ='100%'`
@dsdsdsdsd你也可以通过将display:block添加到#header-content来解决这个问题.

3> 小智..:

我使用这些属性,它的工作原理!

#header {
  display: table-cell;
  vertical-align: bottom;
}


IE8及更早版本不支持.IE9支持它.
@cale_b根据[caniuse.com](http://caniuse.com/#search=table-cell),****在IE8中工作.
@ZachL Happenstance - 我正在为企业客户支持IE8中的遗留应用程序,这实际上是__工作.
@fguillen:刚刚在Chrome(v31)中测试过.也在那里工作.
`table-cell`打破了很多东西.就像Bootstrap网格系统一样.`col-md-12`不再给你一个100%宽的div.

4> Lee Irvine..:

如果您不担心旧版浏览器,请使用flexbox.

父元素需要将其显示类型设置为flex

div.parent {
  display: flex;
  height: 100%;
}

然后将子元素的align-self设置为flex-end.

span.child {
  display: inline-block;
  align-self: flex-end;
}

这是我以前学习的资源:http: //css-tricks.com/snippets/css/a-guide-to-flexbox/


我无法让它工作...... http://codepen.io/anon/pen/rgldC?editors=110

5> Greg Prisame..:

经过一段时间的努力,我终于找到了满足我所有要求的解决方案:

不要求我知道容器的高度.

与相对+绝对解决方案不同,内容不会在其自己的层中浮动(即,它通常嵌入在容器div中).

适用于各种浏览器(IE8 +).

易于实施.

解决方案只需要一个

,我称之为"对齐器":

CSS

.bottom_aligner {
    display: inline-block;
    height: 100%;
    vertical-align: bottom;
    width: 0px;
}

HTML

... Your content here ...

这个技巧的工作原理是创建一个高大的瘦小的div,它将文本基线推到容器的底部.

这是一个完整的例子,可以实现OP的要求.我将"bottom_aligner"设为厚实和红色仅用于演示目的.

CSS:

.outer-container {
  border: 2px solid black;
  height: 175px;
  width: 300px;
}

.top-section {
  background: lightgreen;
  height: 50%;
}

.bottom-section {
  background: lightblue;
  height: 50%;
  margin: 8px;
}

.bottom-aligner {
  display: inline-block;
  height: 100%;
  vertical-align: bottom;
  width: 3px;
  background: red;
}

.bottom-content {
  display: inline-block;
}

.top-content {
  padding: 8px;
}

HTML:


  
This text
is on top.
I like it here
at the bottom.

对齐底部内容


如果放入`:: before`规则,这也可以工作,这样就不需要额外的元素了.我们最后使用了flex,但是当你不能的时候这很有用.

6> Stickers..:

现代的方法是使用flexbox.请参阅下面的示例.您甚至不需要包装Some text...到任何HTML标记中,因为直接包含在Flex容器中的文本包装在匿名的flex项中.

header {
  border: 1px solid blue;
  height: 150px;
  display: flex;                   /* defines flexbox */
  flex-direction: column;          /* top to bottom */
  justify-content: space-between;  /* first item at start, last at end */
}
h1 {
  margin: 0;
}

Header title

Some text aligns to the bottom


7> user3053247..:
display: flex;
align-items: flex-end;


@AnthonyB - 定义旧?我们必须改变这个记录作为开发人员.技术向前发展,旧的根本无法生存.从我看到的IE9和10有flex的问题,但它们分别在2011年和2012年发布......它是2017年.我们不得不放弃这些过时和破损的浏览器.如果不是为了视觉上的满足,而是为了安全性和一般软件更新.
请注意,在旧版浏览器中,flexbox不受[支持](http://caniuse.com/#feat=flexbox).
@Tisch你是绝对正确的,作为开发人员,我们必须使用体面和近期的技术.但我只是警告这个兼容性问题,以免引起惊讶.

8> 小智..:

如果父/块元素的行高大于内联元素的行高,则内联块或内联块元素可以与块级元素的底部对齐.*

标记:

I'm at the bottom

CSS:

h1.alignBtm {
  line-height: 3em;
}
h1.alignBtm span {
  line-height: 1.2em;
  vertical-align: bottom;
}

*确保您处于标准模式



9> 小智..:

你可以简单地实现flex

header {
  border: 1px solid blue;
  height: 150px;
  display: flex;                   /* defines flexbox */
  flex-direction: column;          /* top to bottom */
  justify-content: space-between;  /* first item at start, last at end */
}
h1 {
  margin: 0;
}

Header title

Some text aligns to the bottom
推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有